diff options
author | bunnei <bunneidev@gmail.com> | 2019-04-18 02:59:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-18 02:59:49 +0200 |
commit | 5bd5140bdecd7139029426502b3a474a7d9c9608 (patch) | |
tree | 97c40345bf9c9af75ff9c294601f54ab3a42a1b6 /src/video_core/engines/shader_bytecode.h | |
parent | Merge pull request #2315 from ReinUsesLisp/severity-decompiler (diff) | |
parent | Adapt Bindless to work with AOFFI (diff) | |
download | yuzu-5bd5140bdecd7139029426502b3a474a7d9c9608.tar yuzu-5bd5140bdecd7139029426502b3a474a7d9c9608.tar.gz yuzu-5bd5140bdecd7139029426502b3a474a7d9c9608.tar.bz2 yuzu-5bd5140bdecd7139029426502b3a474a7d9c9608.tar.lz yuzu-5bd5140bdecd7139029426502b3a474a7d9c9608.tar.xz yuzu-5bd5140bdecd7139029426502b3a474a7d9c9608.tar.zst yuzu-5bd5140bdecd7139029426502b3a474a7d9c9608.zip |
Diffstat (limited to 'src/video_core/engines/shader_bytecode.h')
-rw-r--r-- | src/video_core/engines/shader_bytecode.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index 38db4addd..fce9733b9 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h @@ -987,6 +987,38 @@ union Instruction { } tex; union { + BitField<28, 1, u64> array; + BitField<29, 2, TextureType> texture_type; + BitField<31, 4, u64> component_mask; + BitField<49, 1, u64> nodep_flag; + BitField<50, 1, u64> dc_flag; + BitField<36, 1, u64> aoffi_flag; + BitField<37, 3, TextureProcessMode> process_mode; + + bool IsComponentEnabled(std::size_t component) const { + return ((1ULL << component) & component_mask) != 0; + } + + TextureProcessMode GetTextureProcessMode() const { + return process_mode; + } + + bool UsesMiscMode(TextureMiscMode mode) const { + switch (mode) { + case TextureMiscMode::DC: + return dc_flag != 0; + case TextureMiscMode::NODEP: + return nodep_flag != 0; + case TextureMiscMode::AOFFI: + return aoffi_flag != 0; + default: + break; + } + return false; + } + } tex_b; + + union { BitField<22, 6, TextureQueryType> query_type; BitField<31, 4, u64> component_mask; BitField<49, 1, u64> nodep_flag; @@ -1332,7 +1364,9 @@ public: LDG, // Load from global memory STG, // Store in global memory TEX, + TEX_B, // Texture Load Bindless TXQ, // Texture Query + TXQ_B, // Texture Query Bindless TEXS, // Texture Fetch with scalar/non-vec4 source/destinations TLDS, // Texture Load with scalar/non-vec4 source/destinations TLD4, // Texture Load 4 @@ -1600,7 +1634,9 @@ private: INST("1110111011010---", Id::LDG, Type::Memory, "LDG"), INST("1110111011011---", Id::STG, Type::Memory, "STG"), INST("110000----111---", Id::TEX, Type::Texture, "TEX"), + INST("1101111010111---", Id::TEX_B, Type::Texture, "TEX_B"), INST("1101111101001---", Id::TXQ, Type::Texture, "TXQ"), + INST("1101111101010---", Id::TXQ_B, Type::Texture, "TXQ_B"), INST("1101-00---------", Id::TEXS, Type::Texture, "TEXS"), INST("1101101---------", Id::TLDS, Type::Texture, "TLDS"), INST("110010----111---", Id::TLD4, Type::Texture, "TLD4"), |