diff options
author | Gert Wollny <[email protected]> | 2019-12-27 17:49:27 +0100 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-02-10 19:09:08 +0000 |
commit | 1b17316bf38b7f2c23ce648ddd718e1f48641309 (patch) | |
tree | 6bebd3cb766b3a47707a3c68459b88ded593bd03 /src/gallium | |
parent | 31a4dd6451eec9cf96bec6d211e8e9b9f8032706 (diff) |
r600/sfn: Add a load GDS result instruction
This is required to read results for atomic SSBO instructions
Signed-off-by: Gert Wollny <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/r600/sfn/sfn_instruction_fetch.cpp | 27 | ||||
-rw-r--r-- | src/gallium/drivers/r600/sfn/sfn_instruction_fetch.h | 5 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.cpp b/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.cpp index e51bb588969..0fc4f26358d 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.cpp @@ -301,6 +301,33 @@ LoadFromScratch::LoadFromScratch(GPRVector dst, PValue src, int scratch_size): { } +FetchGDSOpResult::FetchGDSOpResult(const GPRVector dst, const PValue src): + FetchInstruction(vc_fetch, + no_index_offset, + fmt_32, + vtx_nf_int, + vtx_es_none, + src, + dst, + 0, + false, + 0xf, + R600_IMAGE_IMMED_RESOURCE_OFFSET, + 0, + bim_none, + false, + false, + 0, + 0, + 0, + PValue(), + {0,7,7,7}) +{ + set_flag(vtx_srf_mode); + set_flag(vtx_vpm); +} + + static const char *fmt_descr[64] = { "INVALID", "8", diff --git a/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.h b/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.h index 465f604fed5..d1cc42f6135 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.h +++ b/src/gallium/drivers/r600/sfn/sfn_instruction_fetch.h @@ -169,6 +169,11 @@ public: LoadFromScratch(GPRVector dst, PValue src, int scratch_size); }; +class FetchGDSOpResult : public FetchInstruction { +public: + FetchGDSOpResult(const GPRVector dst, const PValue src); +}; + } #endif // SFN_INSTRUCTION_FETCH_H |