diff --git a/src/freedreno/vulkan/tu_shader.cc b/src/freedreno/vulkan/tu_shader.cc index 721d4a7c06a..17b4359055a 100644 --- a/src/freedreno/vulkan/tu_shader.cc +++ b/src/freedreno/vulkan/tu_shader.cc @@ -2443,13 +2443,15 @@ tu6_emit_ds(struct tu_cs *cs, regid(63, 0); const uint32_t ds_primitiveid_regid = ir3_find_sysval_regid(ds, SYSTEM_VALUE_PRIMITIVE_ID); + const uint32_t viewid_regid = + ir3_find_sysval_regid(ds, SYSTEM_VALUE_VIEW_INDEX); tu_cs_emit_pkt4(cs, REG_A6XX_VFD_CNTL_3, 2); tu_cs_emit(cs, A6XX_VFD_CNTL_3_REGID_DSRELPATCHID(ds_rel_patch_regid) | A6XX_VFD_CNTL_3_REGID_TESSX(tess_coord_x_regid) | A6XX_VFD_CNTL_3_REGID_TESSY(tess_coord_y_regid) | A6XX_VFD_CNTL_3_REGID_DSPRIMID(ds_primitiveid_regid)); - tu_cs_emit(cs, 0x000000fc); /* VFD_CNTL_4 */ + tu_cs_emit(cs, A6XX_VFD_CNTL_4_REGID_DSVIEWID(viewid_regid)); /* VFD_CNTL_4 */ } TU_GENX(tu6_emit_ds); @@ -2474,10 +2476,12 @@ tu6_emit_gs(struct tu_cs *cs, { const uint32_t gsheader_regid = ir3_find_sysval_regid(gs, SYSTEM_VALUE_GS_HEADER_IR3); + const uint32_t viewid_regid = + ir3_find_sysval_regid(gs, SYSTEM_VALUE_VIEW_INDEX); tu_cs_emit_pkt4(cs, REG_A6XX_VFD_CNTL_5, 1); tu_cs_emit(cs, A6XX_VFD_CNTL_5_REGID_GSHEADER(gsheader_regid) | - 0xfc00); + A6XX_VFD_CNTL_5_REGID_GSVIEWID(viewid_regid)); if (gs) { uint32_t vertices_out, invocations;