freedreno/ir3: Simpify the immediates from an array of vec4 to array of dwords. We usually had to split the idx/swiz out of the dword index anyway. Note that incidentally, immediates_size now increments in vec4s instad of 4*vec4s. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5990>
freedreno/ir3: Merge the redundant immediate_idx/immediates_count fields I got tripped up again with the index vs count vs size fields and I'd rather we didn't store the redundant info. Settle on immediates_count as "how many dwords of immediates we have" Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5990>
freedreno/computerator: Set SP_MODE_CONTROL to the same value as vulkan/GL This gets us consistent hcN access with our drivers, for experimenting. We don't know what the other bit does yet, but let's not have to debug that later. Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6179>
freedreno/registers: split header build into subdirs Instead of building the adreno/foo.xml headers from the toplevel, split out a subdir(). This fits better with how meson likes things to be structured. But it does require fixing a bit about how gen_header.py resolves imports, ie. it cannot assume the src file is at the root of the $RNN_PATH. This is needed for the next patch, to add support for installing the register database for use with installed tools. Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6154>
freedreno/a6xx: Rename and document HLSQ_UPDATE_CNTL It turns out that this clears CP_LOAD_STATE6 packets, including disabling any pending loads for SS6_INDIRECT/SS6_BINDLESS (these loads don't actually happen until the draw itself, and I'm not sure if they happen if the state is unused by the shader) and marking constants and UBO descriptors loaded with SS6_DIRECT as invalid. It's used very differently from HLSQ_UPDATE_CNTL on a4xx from whence the name came, and unlike on a4xx it's not readable, so this probably doesn't line up with HLSQ_UPDATE_CNTL on a4xx. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5877>
freedreno/ir3: add accessor for const_state We are going to want to move this back to the variant, and come up with a different strategy for binning/nonbinning to share the same constant layout, in order to implement shader-cache support. (Since then we can have a mix of dynamically compiled variants and cache hits, so there is no good place to serialize the const-state.) To reduce the churn as we re-arrange things, move direct access to the const-state to a helper fxn. This patch is the boring churny part. Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5508>
freedreno/computerator: MERGEDREGS update Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5458>
freedreno: Replace OUT_RELOCW with OUT_RELOC. Final cleanup commit now that they're the same. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4967>
freedreno: Replace OUT_RELOCD with permanently flagging shader BOs for it. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4967>
freedreno/computerator: Decouple ir3 assembler Specifically, don't include ir3_asm.h in the parser as that's computerator specific. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4741>
freedreno: Rename RB_DONE_TS This makes the various cache_flush implementations make more sense. Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4065> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4065>
freedreno/computerator: add performance counter support Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4119>
freedreno/computerator: add computerator A standalone tool to compile and run compute shaders from ir3 assembly. Mostly to have an easy way to experiment with instructions. Signed-off-by: Rob Clark <robdclark@chromium.org> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3926> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3926>