Skip to content

turnip,freedreno/a6xx: tell hw the size of shared mem used by CS

Danylo Piliaiev requested to merge Danil/mesa:turnip/fix/cs-shared-size into master

Before, we only used 2k of shared memory.

It was found that 5 lower bits of SP_CS_UNKNOWN_A9B1 do control the available size of shared memory for compute shaders, with

AVAILABLE_SIZE = (SP_CS_UNKNOWN_A9B1_SHARED_SIZE + 1) * 1k

up to 32k. And SP_CS_UNKNOWN_A9B1_SHARED_SIZE being zero enables all 32k of shared memory.

Fixes test:

 dEQP-VK.rasterization.line_continuity.line-strip
 dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.buffer.guard_nonlocal.workgroup.comp
 dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_nonlocal.workgroup.guard_local.buffer.comp
 dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_local.image.guard_nonlocal.workgroup.comp

Extracted from !9054 (merged)

Edited by Danylo Piliaiev

Merge request reports