ir3: handle gl_Layer and gl_ViewportIndex when there is TES + GS
Fixes CTS tests: KHR-GL46.shader_viewport_layer_array.ShaderViewportIndexTestCase KHR-GL46.shader_viewport_layer_array.ShaderLayerFramebufferLayeredTestCase KHR-GL46.shader_viewport_layer_array.ShaderLayerFramebufferNonLayeredTestCase Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6497 Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16696>
This commit is contained in:
parent
1046c2a1c0
commit
713f504033
|
@ -29,7 +29,8 @@ struct state {
|
|||
uint32_t topology;
|
||||
|
||||
struct primitive_map {
|
||||
unsigned loc[32 + 4]; /* +POSITION +PSIZE +CLIP_DIST0 +CLIP_DIST1 */
|
||||
/* +POSITION, +PSIZE, ... - see shader_io_get_unique_index */
|
||||
unsigned loc[32 + 6];
|
||||
unsigned stride;
|
||||
} map;
|
||||
|
||||
|
@ -106,8 +107,12 @@ shader_io_get_unique_index(gl_varying_slot slot)
|
|||
return 2;
|
||||
if (slot == VARYING_SLOT_CLIP_DIST1)
|
||||
return 3;
|
||||
if (slot == VARYING_SLOT_VIEWPORT)
|
||||
return 4;
|
||||
if (slot == VARYING_SLOT_LAYER)
|
||||
return 5;
|
||||
if (slot >= VARYING_SLOT_VAR0 && slot <= VARYING_SLOT_VAR31)
|
||||
return 4 + (slot - VARYING_SLOT_VAR0);
|
||||
return 6 + (slot - VARYING_SLOT_VAR0);
|
||||
unreachable("illegal slot in get unique index\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -625,8 +625,9 @@ struct ir3_shader_variant {
|
|||
/* Map from location to offset in per-primitive storage. In dwords for
|
||||
* HS, where varyings are read in the next stage via ldg with a dword
|
||||
* offset, and in bytes for all other stages.
|
||||
* +POSITION, +PSIZE, ... - see shader_io_get_unique_index
|
||||
*/
|
||||
unsigned output_loc[32 + 4]; /* +POSITION +PSIZE +CLIP_DIST0 +CLIP_DIST1 */
|
||||
unsigned output_loc[32 + 6];
|
||||
|
||||
/* attributes (VS) / varyings (FS):
|
||||
* Note that sysval's should come *after* normal inputs.
|
||||
|
|
|
@ -230,9 +230,6 @@ KHR-GL46.shader_image_load_store.multiple-uniforms,Fail
|
|||
KHR-GL46.shader_storage_buffer_object.basic-atomic-case1,Fail
|
||||
KHR-GL46.shader_storage_buffer_object.basic-stdLayout-case3-cs,Crash
|
||||
KHR-GL46.shader_storage_buffer_object.basic-stdLayout-case3-vs,Crash
|
||||
KHR-GL46.shader_viewport_layer_array.ShaderLayerFramebufferLayeredTestCase,Crash
|
||||
KHR-GL46.shader_viewport_layer_array.ShaderLayerFramebufferNonLayeredTestCase,Crash
|
||||
KHR-GL46.shader_viewport_layer_array.ShaderViewportIndexTestCase,Crash
|
||||
KHR-GL46.tessellation_shader.vertex.vertex_ordering,Fail
|
||||
KHR-GL46.texture_cube_map_array.color_depth_attachments,Fail
|
||||
KHR-GL46.texture_cube_map_array.image_op_geometry_sh,Fail
|
||||
|
|
Loading…
Reference in New Issue