diff --git a/src/freedreno/.gitlab-ci/reference/crash.log b/src/freedreno/.gitlab-ci/reference/crash.log index dafb3b3e59f..2df17053fdc 100644 --- a/src/freedreno/.gitlab-ci/reference/crash.log +++ b/src/freedreno/.gitlab-ci/reference/crash.log @@ -7144,7 +7144,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d) deadbeef HLSQ_2D_EVENT_CMD: { STATE_ID = 0xbe | EVENT = 0x6f | 0xdead0080 } - cluster-name: CLUSTER_SP_PS - context: 0 - 05100000 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | PIXLODENABLE | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 0 | BRANCHSTACK = 0 } + 05100000 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | PIXLODENABLE | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 0 | BRANCHSTACK = 0 } 00000000 SP_FS_BRANCH_COND: 0 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 1af864bdb43d8 SP_FS_OBJ_START: 0x1af864bdb43d8 @@ -7212,7 +7212,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d) 00000000 0xaa30: 00000000 00000000 0xaa31: 00000000 - context: 1 - 05100000 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | PIXLODENABLE | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 0 | BRANCHSTACK = 0 } + 05100000 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | PIXLODENABLE | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 0 | BRANCHSTACK = 0 } 00000000 SP_FS_BRANCH_COND: 0 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 1af864bdb43d8 SP_FS_OBJ_START: 0x1af864bdb43d8 diff --git a/src/freedreno/.gitlab-ci/reference/crash_prefetch.log b/src/freedreno/.gitlab-ci/reference/crash_prefetch.log index 5cdf3c2da33..b75b0af4d54 100644 --- a/src/freedreno/.gitlab-ci/reference/crash_prefetch.log +++ b/src/freedreno/.gitlab-ci/reference/crash_prefetch.log @@ -2874,7 +2874,7 @@ got cmdszdw=38 + 00000000 SP_HS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } -!+ 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } +!+ 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 !+ 1001e7080 SP_FS_OBJ_START: 0x1001e7080 base=1001e7000, offset=128, size=131072 00000001001e7080: 0000: 00000000 200c4000 00000001 200c4001 00000000 00000100 10000000 40700000 @@ -3588,7 +3588,7 @@ got cmdszdw=38 + 00000000 SP_HS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } - + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 !+ 1001e8580 SP_FS_OBJ_START: 0x1001e8580 base=1001e7000, offset=5504, size=131072 00000001001e8580: 0000: 00000000 200c4000 00000001 200c4001 00000000 00000100 10000000 40700000 @@ -4313,7 +4313,7 @@ got cmdszdw=38 + 00000000 SP_HS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } - + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 !+ 1001e9a80 SP_FS_OBJ_START: 0x1001e9a80 base=1001e7000, offset=10880, size=131072 00000001001e9a80: 0000: 00000000 200c4000 00000001 200c4001 00000000 00000100 10000000 40700000 @@ -4963,7 +4963,7 @@ ESTIMATED CRASH LOCATION! + 00000000 SP_HS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } - + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 !+ 1001eaf80 SP_FS_OBJ_START: 0x1001eaf80 base=1001e7000, offset=16256, size=131072 00000001001eaf80: 0000: 00000000 200c4000 00000001 200c4001 00000000 00000100 10000000 40700000 @@ -18920,7 +18920,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d) deadbeef HLSQ_2D_EVENT_CMD: { STATE_ID = 0xbe | EVENT = 0x6f | 0xdead0080 } - cluster-name: CLUSTER_SP_PS - context: 0 - 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } 00000000 SP_FS_BRANCH_COND: 0 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 1001e8580 SP_FS_OBJ_START: 0x1001e8580 base=1001e7000, offset=5504, size=131072 @@ -18988,7 +18988,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d) 00000000 0xaa30: 00000000 00000000 0xaa31: 00000000 - context: 1 - 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } + 81100300 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 6 | BRANCHSTACK = 0 } 00000000 SP_FS_BRANCH_COND: 0 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 1001e8580 SP_FS_OBJ_START: 0x1001e8580 base=1001e7000, offset=5504, size=131072 diff --git a/src/freedreno/.gitlab-ci/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log b/src/freedreno/.gitlab-ci/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log index 0a0b1bb6cae..ef7641201a8 100644 --- a/src/freedreno/.gitlab-ci/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log +++ b/src/freedreno/.gitlab-ci/reference/dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list.log @@ -840,7 +840,7 @@ cmdstream[0]: 265 dwords HLSQ_GS_CNTL: { CONSTLEN = 0 } 0000000001054208: 0000: 48b80301 00000000 write SP_FS_CTRL_REG0 (a980) - SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 2 | BRANCHSTACK = 0 } + SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 2 | BRANCHSTACK = 0 } 0000000001054210: 0000: 40a98001 81500100 write SP_FS_CONFIG (ab04) SP_FS_CONFIG: { ENABLED | NTEX = 0 | NSAMP = 0 | NIBO = 0 } @@ -1448,7 +1448,7 @@ cmdstream[0]: 265 dwords + 00000000 SP_HS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } -!+ 81500100 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 2 | BRANCHSTACK = 0 } +!+ 81500100 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 2 | BRANCHSTACK = 0 } !+ 01054080 SP_FS_OBJ_START: 0x1054080 base=1054000, offset=128, size=12288 0000000001054080: 0000: 00002000 47300002 00002001 47300003 00002002 47300004 00002003 47308005 00000000010540a0: 0020: 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 diff --git a/src/freedreno/.gitlab-ci/reference/fd-clouds.log b/src/freedreno/.gitlab-ci/reference/fd-clouds.log index 3cc99d569bb..cb22eda2557 100644 --- a/src/freedreno/.gitlab-ci/reference/fd-clouds.log +++ b/src/freedreno/.gitlab-ci/reference/fd-clouds.log @@ -685,7 +685,7 @@ cmdstream[0]: 1023 dwords HLSQ_FS_CNTL_0: { THREADSIZE = THREAD128 } 00000000011210b8: 0000: 48b98001 00000001 write SP_FS_CTRL_REG0 (a980) - SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 1 | BRANCHSTACK = 0 } + SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 1 | BRANCHSTACK = 0 } 00000000011210c0: 0000: 40a98001 81100080 write SP_FS_OBJ_FIRST_EXEC_OFFSET (a982) SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 @@ -1084,7 +1084,7 @@ cmdstream[0]: 1023 dwords + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_PRIM_SIZE: 0 + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } -!+ 81100080 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 1 | BRANCHSTACK = 0 } +!+ 81100080 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 1 | BRANCHSTACK = 0 } + 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 + 00000000 SP_SRGB_CNTL: { 0 } !+ 0000000f SP_FS_RENDER_COMPONENTS: { RT0 = 0xf | RT1 = 0 | RT2 = 0 | RT3 = 0 | RT4 = 0 | RT5 = 0 | RT6 = 0 | RT7 = 0 } @@ -1969,7 +1969,7 @@ cmdstream[0]: 1023 dwords HLSQ_FS_CNTL_0: { THREADSIZE = THREAD128 } 00000000011200b8: 0000: 48b98001 00000001 write SP_FS_CTRL_REG0 (a980) - SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 19 | BRANCHSTACK = 2 } + SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 19 | BRANCHSTACK = 2 } 00000000011200c0: 0000: 40a98001 81508980 write SP_FS_OBJ_FIRST_EXEC_OFFSET (a982) SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 @@ -5278,7 +5278,7 @@ cmdstream[0]: 1023 dwords + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_PRIM_SIZE: 0 + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } -!+ 81508980 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | UNK24 | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 19 | BRANCHSTACK = 2 } +!+ 81508980 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | INOUTREGOVERLAP | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 19 | BRANCHSTACK = 2 } + 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 !+ 01013000 SP_FS_OBJ_START: 0x1013000 base=1013000, offset=0, size=11264 0000000001013000: 0000: 40400000 204cc000 00000000 204cc006 3e99999a 204cc004 20080014 42700008 diff --git a/src/freedreno/.gitlab-ci/reference/prefetch-test.log b/src/freedreno/.gitlab-ci/reference/prefetch-test.log index fdf02b1bfb2..2af723e8d5a 100644 --- a/src/freedreno/.gitlab-ci/reference/prefetch-test.log +++ b/src/freedreno/.gitlab-ci/reference/prefetch-test.log @@ -3204,7 +3204,7 @@ got cmdszdw=416 + 00000000 SP_DS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } + 00000000 SP_GS_PRIM_SIZE: 0 + 00000000 SP_GS_CONFIG: { NTEX = 0 | NSAMP = 0 | NIBO = 0 } -!+ 85508180 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | UNK24 | PIXLODENABLE | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 3 | BRANCHSTACK = 2 } +!+ 85508180 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | INOUTREGOVERLAP | PIXLODENABLE | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 3 | BRANCHSTACK = 2 } + 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 !+ 10372c000 SP_FS_OBJ_START: 0x10372c000 base=10372c000, offset=0, size=4096 000000010372c000: 0000: 00002000 473080fc 0000000e 03820000 0000000d 02820000 0000b800 20488007 @@ -152915,7 +152915,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d) deadbeef HLSQ_2D_EVENT_CMD: { STATE_ID = 0xbe | EVENT = 0x6f | 0xdead0080 } - cluster-name: CLUSTER_SP_PS - context: 0 - 85508180 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | UNK24 | PIXLODENABLE | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 3 | BRANCHSTACK = 2 } + 85508180 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | INOUTREGOVERLAP | PIXLODENABLE | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 3 | BRANCHSTACK = 2 } 00000000 SP_FS_BRANCH_COND: 0 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 10372c000 SP_FS_OBJ_START: 0x10372c000 base=10372c000, offset=0, size=4096 @@ -152983,7 +152983,7 @@ WARNING: 64b discontinuity (no _LO dword for 890d) 00000000 0xaa30: 00000000 00000000 0xaa31: 00000000 - context: 1 - 85508180 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | UNK24 | PIXLODENABLE | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 3 | BRANCHSTACK = 2 } + 85508180 SP_FS_CTRL_REG0: { THREADSIZE = THREAD128 | VARYING | INOUTREGOVERLAP | PIXLODENABLE | MERGEDREGS | THREADMODE = MULTI | HALFREGFOOTPRINT = 0 | FULLREGFOOTPRINT = 3 | BRANCHSTACK = 2 } 00000000 SP_FS_BRANCH_COND: 0 00000000 SP_FS_OBJ_FIRST_EXEC_OFFSET: 0 10372c000 SP_FS_OBJ_START: 0x10372c000 base=10372c000, offset=0, size=4096 diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml index 63207b560f9..3af24458d7d 100644 --- a/src/freedreno/registers/adreno/a6xx.xml +++ b/src/freedreno/registers/adreno/a6xx.xml @@ -4964,8 +4964,7 @@ to upconvert to 32b float internally? fine derivatives and quad subgroup ops. - - + diff --git a/src/freedreno/vulkan/tu_shader.cc b/src/freedreno/vulkan/tu_shader.cc index 541e5e5a26f..1b811c33e22 100644 --- a/src/freedreno/vulkan/tu_shader.cc +++ b/src/freedreno/vulkan/tu_shader.cc @@ -1338,8 +1338,10 @@ tu6_emit_xs(struct tu_cs *cs, .threadsize = thrsz, .varying = xs->total_in != 0, .lodpixmask = xs->need_full_quad, - /* unknown bit, seems unnecessary */ - .unk24 = true, + /* inoutregoverlap had no effect on perf in anholt's testing: + * https://gitlab.freedesktop.org/anholt/mesa/-/commits/tu-inout-reg + */ + .inoutregoverlap = true, .pixlodenable = xs->need_pixlod, .earlypreamble = xs->early_preamble, .mergedregs = xs->mergedregs, diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.cc b/src/gallium/drivers/freedreno/a6xx/fd6_program.cc index 08439fffbfe..23924bfbdd5 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_program.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.cc @@ -163,8 +163,7 @@ fd6_emit_shader(struct fd_context *ctx, struct fd_ringbuffer *ring, .threadsize = thrsz, .varying = so->total_in != 0, .lodpixmask = so->need_full_quad, - /* unknown bit, seems unnecessary */ - .unk24 = true, + .inoutregoverlap = true, .pixlodenable = so->need_pixlod, .earlypreamble = so->early_preamble, .mergedregs = so->mergedregs,