mesa/st: do not enable EXT_texture_buffer_object with rgba only

GL_EXT_texture_buffer_object requires support for alpha, luminance,
luminance-alpha and intensity formats. If we can't support those, we
can't enable the extension.

Fixes: 45ca7798dc ("glsl: handle interactions between EXT_gpu_shader4 and texture extensions")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 6f2b8c3f61)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
This commit is contained in:
Erik Faye-Lund 2025-10-31 09:52:36 +01:00 committed by Dylan Baker
parent 5dde2812b9
commit 798ec2e23f
2 changed files with 4 additions and 2 deletions

View file

@ -334,7 +334,7 @@
"description": "mesa/st: do not enable EXT_texture_buffer_object with rgba only",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "45ca7798dc32c1cb7da8f94af9a7d7400ee9bc12",
"notes": null

View file

@ -1265,7 +1265,9 @@ void st_init_extensions(struct pipe_screen *screen,
* pipe cap.
*/
extensions->EXT_gpu_shader4 = GL_TRUE;
extensions->EXT_texture_buffer_object = GL_TRUE;
if (!screen->caps.buffer_sampler_view_rgba_only)
extensions->EXT_texture_buffer_object = GL_TRUE;
if (consts->MaxTransformFeedbackBuffers &&
screen->caps.shader_array_components)