mesa/st/program: don't init xfb info if there are no outputs

this is almost certainly a failure case, but drivers still shouldn't
get xfb info if there are no outputs

affects:
spec@glsl-1.50@execution@interface-blocks-api-access-members

cc: mesa-stable

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22448>
This commit is contained in:
Mike Blumenkrantz
2023-04-12 12:57:13 -04:00
committed by Marge Bot
parent 9f4ec94c20
commit a86c710ce5
4 changed files with 5 additions and 9 deletions

View File

@@ -690,9 +690,6 @@ spec@ext_transform_feedback@tessellation triangle_fan flat_first,Fail
spec@ext_transform_feedback@tessellation quad_strip wireframe,Fail
spec@ext_transform_feedback@tessellation quads wireframe,Fail
# ../src/gallium/drivers/zink/zink_compiler.c:1684: find_var_with_location_frac: Assertion `(int)location > 0' failed.
spec@glsl-1.50@execution@interface-blocks-api-access-members,Crash
spec@glsl-1.50@execution@primitive-id-no-gs-quad-strip,Fail
spec@glsl-1.50@execution@primitive-id-no-gs-quads,Fail

View File

@@ -248,9 +248,6 @@ spec@glsl-1.10@execution@samplers@glsl-fs-shadow2d-clamp-z,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
# ../src/gallium/drivers/zink/zink_compiler.c:1684: find_var_with_location_frac: Assertion `(int)location > 0' failed.
spec@glsl-1.50@execution@interface-blocks-api-access-members,Crash
spec@glsl-1.50@execution@primitive-id-no-gs-quad-strip,Fail
spec@glsl-4.00@execution@conversion@frag-conversion-explicit-dmat2-mat2,Fail
spec@glsl-4.00@execution@conversion@frag-conversion-explicit-dmat2x3-mat2x3,Fail

View File

@@ -247,9 +247,6 @@ spec@glsl-1.10@execution@samplers@glsl-fs-shadow2d-clamp-z,Fail
spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail
# ../src/gallium/drivers/zink/zink_compiler.c:1684: find_var_with_location_frac: Assertion `(int)location > 0' failed.
spec@glsl-1.50@execution@interface-blocks-api-access-members,Crash
spec@glsl-1.50@execution@primitive-id-no-gs-quad-strip,Fail
spec@glsl-4.00@execution@conversion@frag-conversion-explicit-dmat2-mat2,Fail
spec@glsl-4.00@execution@conversion@frag-conversion-explicit-dmat2x3-mat2x3,Fail

View File

@@ -476,6 +476,11 @@ st_translate_stream_output_info(struct gl_program *prog)
struct pipe_stream_output_info *so_info =
&prog->state.stream_output;
if (!num_outputs) {
so_info->num_outputs = 0;
return;
}
for (unsigned i = 0; i < info->NumOutputs; i++) {
so_info->output[i].register_index =
output_mapping[info->Outputs[i].OutputRegister];