mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 00:00:11 +01:00
mesa: require render target bind for A/L/I in format selection
these are required framebuffer formats in certain versions of GL, so don't create a texture that can't later be bound to a framebuffer see also spec@!opengl 3.0@required-texture-attachment-formats cc: mesa-stable Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17687>
This commit is contained in:
parent
4f28e2827c
commit
28d033b34f
1 changed files with 16 additions and 0 deletions
|
|
@ -1294,6 +1294,22 @@ st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
|
|||
internalFormat == GL_R8UI)
|
||||
bindings |= PIPE_BIND_RENDER_TARGET;
|
||||
|
||||
if ((_mesa_is_desktop_gl(ctx) && ctx->Version >= 30) &&
|
||||
(internalFormat == GL_ALPHA4 ||
|
||||
internalFormat == GL_ALPHA8 ||
|
||||
internalFormat == GL_ALPHA12 ||
|
||||
internalFormat == GL_ALPHA16 ||
|
||||
/* ARB_texture_float */
|
||||
internalFormat == GL_ALPHA32F_ARB ||
|
||||
internalFormat == GL_INTENSITY32F_ARB ||
|
||||
internalFormat == GL_LUMINANCE32F_ARB ||
|
||||
internalFormat == GL_LUMINANCE_ALPHA32F_ARB ||
|
||||
internalFormat == GL_ALPHA16F_ARB ||
|
||||
internalFormat == GL_INTENSITY16F_ARB ||
|
||||
internalFormat == GL_LUMINANCE16F_ARB ||
|
||||
internalFormat == GL_LUMINANCE_ALPHA16F_ARB))
|
||||
bindings |= PIPE_BIND_RENDER_TARGET;
|
||||
|
||||
/* GLES allows the driver to choose any format which matches
|
||||
* the format+type combo, because GLES only supports unsized internal
|
||||
* formats and expects the driver to choose whatever suits it.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue