Skip to content

i965: Disable EXT_texture_integer on Gfx4 and Gfx5

Ian Romanick requested to merge idr/mesa:issue-4497 into staging/21.3

st_init_extensions (src/mesa/state_tracker/st_extensions.c) already enforces the GLSL 1.30 or EXT_gpu_shader4 requirement, so Crocus will already behave this way on this hardware.

The EXT_texture_integer spec says:

NV_gpu_program4 or EXT_gpu_shader4 is required.

Without one of these extensions or GLSL 1.30, it is impossible to read integer values from a texture. The spec also says:

This extension does not enforce type consistency for texture
accesses or between fragment shaders and the corresponding
framebuffer attachments.  The results of a texture lookup from an
integer texture are undefined:

  * for fixed-function fragment processing, or

  * for shader texture accesses expecting floating-point return
    values.

The color components used for per-fragment operations and written
into a color buffer are undefined:

  * for fixed-function fragment processing with an integer color
    buffer,

  * for fragment shaders that write floating-point color components
    to an integer color buffer, or

  * for fragment shaders that write integer color components to a
    color buffer with floating point or normalized integer
    components.

So it's really a soft requirement, but also kind of rude to expose the extension without a way to use it properly.

Closes: #4497 CC: mesa-stable

Merge request reports