panfrost: fix some omissions in valhall flow control
The code for checking flow control did not realize that `LD_TEX` and `LD_TEX_IMM` were memory accesses, and hence was not inserting waits where these were necessary. This showed up as flakes in KHR-GLES31.core.shader_image_load_store.basic-glsl-misc-fs Cc: mesa-stable Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29363>
This commit is contained in:
@@ -115,9 +115,16 @@ bi_ld_vary_writes_hidden_register(const bi_instr *I)
|
|||||||
static bool
|
static bool
|
||||||
bi_is_memory_access(const bi_instr *I)
|
bi_is_memory_access(const bi_instr *I)
|
||||||
{
|
{
|
||||||
/* On the attribute unit but functionally a general memory load */
|
/* Some instructions on the attribute unit are functionally
|
||||||
if (I->op == BI_OPCODE_LD_ATTR_TEX)
|
a general memory load */
|
||||||
|
switch (I->op) {
|
||||||
|
case BI_OPCODE_LD_ATTR_TEX:
|
||||||
|
case BI_OPCODE_LD_TEX:
|
||||||
|
case BI_OPCODE_LD_TEX_IMM:
|
||||||
return true;
|
return true;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* UBOs are read-only so there are no ordering constriants */
|
/* UBOs are read-only so there are no ordering constriants */
|
||||||
if (I->seg == BI_SEG_UBO)
|
if (I->seg == BI_SEG_UBO)
|
||||||
|
Reference in New Issue
Block a user