mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 07:18:17 +02:00
panfrost: Fix gl_VertexID/InstanceID
Fixes a bunch of tests in dEQP-GLES3.functional.instanced.*.
Fixes: 027944c7c8 ("panfrost: Avoid reading GPU memory when packing
vertices")
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950>
This commit is contained in:
parent
a0b90b45a9
commit
23c8597172
4 changed files with 7 additions and 20 deletions
|
|
@ -571,22 +571,6 @@ dEQP-GLES3.functional.fragment_out.array.uint.rgba8ui_mediump_uvec2
|
|||
dEQP-GLES3.functional.fragment_out.array.uint.rgba8ui_mediump_uvec3
|
||||
dEQP-GLES3.functional.fragment_out.array.uint.rgba8ui_mediump_uvec4
|
||||
dEQP-GLES3.functional.fragment_out.random.30
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.instance_id.1_instances
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.instance_id.20_instances
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.instance_id.2_instances
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.instance_id.4_instances
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.mixed.1_instances
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.mixed.20_instances
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.mixed.2_instances
|
||||
dEQP-GLES3.functional.instanced.draw_arrays_instanced.mixed.4_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.instance_id.1_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.instance_id.20_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.instance_id.2_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.instance_id.4_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.mixed.1_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.mixed.20_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.mixed.2_instances
|
||||
dEQP-GLES3.functional.instanced.draw_elements_instanced.mixed.4_instances
|
||||
dEQP-GLES3.functional.multisample.fbo_4_samples.common_edge_big_quad
|
||||
dEQP-GLES3.functional.multisample.fbo_4_samples.common_edge_small_quads
|
||||
dEQP-GLES3.functional.multisample.fbo_4_samples.common_edge_viewport_quad
|
||||
|
|
|
|||
|
|
@ -118,10 +118,8 @@ panfrost_emit_vertex_data(struct panfrost_batch *batch)
|
|||
/* Add special gl_VertexID/gl_InstanceID buffers */
|
||||
|
||||
panfrost_vertex_id(ctx->padded_count, &attrs[k]);
|
||||
so->hw[PAN_VERTEX_ID].index = k++;
|
||||
|
||||
panfrost_instance_id(ctx->padded_count, &attrs[k]);
|
||||
so->hw[PAN_INSTANCE_ID].index = k++;
|
||||
so->vertexid_index = k++;
|
||||
panfrost_instance_id(ctx->padded_count, &attrs[k++]);
|
||||
|
||||
/* Upload whatever we emitted and go */
|
||||
|
||||
|
|
|
|||
|
|
@ -430,7 +430,11 @@ panfrost_stage_attributes(struct panfrost_context *ctx)
|
|||
};
|
||||
|
||||
/* See mali_attr_meta specification for the magic number */
|
||||
|
||||
builtin.index = so->vertexid_index;
|
||||
memcpy(&target[PAN_VERTEX_ID], &builtin, 4);
|
||||
|
||||
builtin.index = so->vertexid_index + 1;
|
||||
memcpy(&target[PAN_INSTANCE_ID], &builtin, 4);
|
||||
|
||||
ctx->payloads[PIPE_SHADER_VERTEX].postfix.attribute_meta = transfer.gpu;
|
||||
|
|
|
|||
|
|
@ -248,6 +248,7 @@ struct panfrost_shader_variants {
|
|||
|
||||
struct panfrost_vertex_state {
|
||||
unsigned num_elements;
|
||||
unsigned vertexid_index;
|
||||
|
||||
struct pipe_vertex_element pipe[PIPE_MAX_ATTRIBS];
|
||||
struct mali_attr_meta hw[PIPE_MAX_ATTRIBS];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue