diff options
author | Eric Anholt <[email protected]> | 2020-01-17 14:28:13 -0800 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-01-23 22:46:09 +0000 |
commit | d4bc3c93ea56517981b553841c2adbb734a68078 (patch) | |
tree | f1de3e4c8bb3c6c0881ad9a903ffb4a3123b9e18 /src/gallium/drivers | |
parent | c1327bc283e0a99f27d97c4a48c89efb5248c93d (diff) |
freedreno: Fix OUT_REG() on address regs without a .bo supplied.
Sometimes you want to zero out an address by supplying a NULL BO, but
without this we would end up only emitting one dword. Increases size of
fd6_gmem.o by .8%, though it's not clear to me why (no obvious terrible
codegen happening)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3455>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_pack.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_pack.h b/src/gallium/drivers/freedreno/a6xx/fd6_pack.h index f5f8e2ca5f7..b3b9bf9244d 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_pack.h +++ b/src/gallium/drivers/freedreno/a6xx/fd6_pack.h @@ -30,6 +30,7 @@ struct fd_reg_pair { uint32_t reg; uint64_t value; struct fd_bo *bo; + bool is_address; bool bo_write; uint32_t bo_offset; uint32_t bo_shift; @@ -68,6 +69,8 @@ struct fd_reg_pair { fd_ringbuffer_reloc(ring, &reloc); \ } else { \ *p++ = regs[i].value; \ + if (regs[i].is_address) \ + *p++ = regs[i].value >> 32; \ } \ } \ } while (0) |