mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-23 15:22:45 +01:00
shader_ir: Remove F4 prefix to texture operations
This was originally included because texture operations returned a vec4. These operations now return a single float and the F4 prefix doesn't mean anything.
This commit is contained in:
parent
d62b0a9e29
commit
889c646ac0
3 changed files with 25 additions and 26 deletions
|
@ -1140,7 +1140,7 @@ private:
|
||||||
Type::HalfFloat);
|
Type::HalfFloat);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string F4Texture(Operation operation) {
|
std::string Texture(Operation operation) {
|
||||||
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
||||||
ASSERT(meta);
|
ASSERT(meta);
|
||||||
|
|
||||||
|
@ -1151,7 +1151,7 @@ private:
|
||||||
return expr + GetSwizzle(meta->element);
|
return expr + GetSwizzle(meta->element);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string F4TextureLod(Operation operation) {
|
std::string TextureLod(Operation operation) {
|
||||||
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
||||||
ASSERT(meta);
|
ASSERT(meta);
|
||||||
|
|
||||||
|
@ -1162,7 +1162,7 @@ private:
|
||||||
return expr + GetSwizzle(meta->element);
|
return expr + GetSwizzle(meta->element);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string F4TextureGather(Operation operation) {
|
std::string TextureGather(Operation operation) {
|
||||||
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
||||||
ASSERT(meta);
|
ASSERT(meta);
|
||||||
|
|
||||||
|
@ -1170,7 +1170,7 @@ private:
|
||||||
GetSwizzle(meta->element);
|
GetSwizzle(meta->element);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string F4TextureQueryDimensions(Operation operation) {
|
std::string TextureQueryDimensions(Operation operation) {
|
||||||
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
||||||
ASSERT(meta);
|
ASSERT(meta);
|
||||||
|
|
||||||
|
@ -1190,7 +1190,7 @@ private:
|
||||||
return "0";
|
return "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string F4TextureQueryLod(Operation operation) {
|
std::string TextureQueryLod(Operation operation) {
|
||||||
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
||||||
ASSERT(meta);
|
ASSERT(meta);
|
||||||
|
|
||||||
|
@ -1201,7 +1201,7 @@ private:
|
||||||
return "0";
|
return "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string F4TexelFetch(Operation operation) {
|
std::string TexelFetch(Operation operation) {
|
||||||
constexpr std::array<const char*, 4> constructors = {"int", "ivec2", "ivec3", "ivec4"};
|
constexpr std::array<const char*, 4> constructors = {"int", "ivec2", "ivec3", "ivec4"};
|
||||||
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
const auto meta = std::get_if<MetaTexture>(&operation.GetMeta());
|
||||||
ASSERT(meta);
|
ASSERT(meta);
|
||||||
|
@ -1463,12 +1463,12 @@ private:
|
||||||
&GLSLDecompiler::Logical2HNotEqual,
|
&GLSLDecompiler::Logical2HNotEqual,
|
||||||
&GLSLDecompiler::Logical2HGreaterEqual,
|
&GLSLDecompiler::Logical2HGreaterEqual,
|
||||||
|
|
||||||
&GLSLDecompiler::F4Texture,
|
&GLSLDecompiler::Texture,
|
||||||
&GLSLDecompiler::F4TextureLod,
|
&GLSLDecompiler::TextureLod,
|
||||||
&GLSLDecompiler::F4TextureGather,
|
&GLSLDecompiler::TextureGather,
|
||||||
&GLSLDecompiler::F4TextureQueryDimensions,
|
&GLSLDecompiler::TextureQueryDimensions,
|
||||||
&GLSLDecompiler::F4TextureQueryLod,
|
&GLSLDecompiler::TextureQueryLod,
|
||||||
&GLSLDecompiler::F4TexelFetch,
|
&GLSLDecompiler::TexelFetch,
|
||||||
|
|
||||||
&GLSLDecompiler::Branch,
|
&GLSLDecompiler::Branch,
|
||||||
&GLSLDecompiler::PushFlowStack,
|
&GLSLDecompiler::PushFlowStack,
|
||||||
|
|
|
@ -336,8 +336,7 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
|
||||||
for (u32 element = 0; element < values.size(); ++element) {
|
for (u32 element = 0; element < values.size(); ++element) {
|
||||||
auto coords_copy = coords;
|
auto coords_copy = coords;
|
||||||
MetaTexture meta{sampler, {}, {}, extras, element};
|
MetaTexture meta{sampler, {}, {}, extras, element};
|
||||||
values[element] =
|
values[element] = Operation(OperationCode::TextureGather, meta, std::move(coords_copy));
|
||||||
Operation(OperationCode::F4TextureGather, meta, std::move(coords_copy));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteTexsInstructionFloat(bb, instr, values);
|
WriteTexsInstructionFloat(bb, instr, values);
|
||||||
|
@ -362,8 +361,8 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
MetaTexture meta{sampler, {}, {}, {}, element};
|
MetaTexture meta{sampler, {}, {}, {}, element};
|
||||||
const Node value = Operation(OperationCode::F4TextureQueryDimensions, meta,
|
const Node value =
|
||||||
GetRegister(instr.gpr8));
|
Operation(OperationCode::TextureQueryDimensions, meta, GetRegister(instr.gpr8));
|
||||||
SetTemporal(bb, indexer++, value);
|
SetTemporal(bb, indexer++, value);
|
||||||
}
|
}
|
||||||
for (u32 i = 0; i < indexer; ++i) {
|
for (u32 i = 0; i < indexer; ++i) {
|
||||||
|
@ -412,7 +411,7 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
|
||||||
for (u32 element = 0; element < 2; ++element) {
|
for (u32 element = 0; element < 2; ++element) {
|
||||||
auto params = coords;
|
auto params = coords;
|
||||||
MetaTexture meta{sampler, {}, {}, {}, element};
|
MetaTexture meta{sampler, {}, {}, {}, element};
|
||||||
const Node value = Operation(OperationCode::F4TextureQueryLod, meta, std::move(params));
|
const Node value = Operation(OperationCode::TextureQueryLod, meta, std::move(params));
|
||||||
SetTemporal(bb, element, value);
|
SetTemporal(bb, element, value);
|
||||||
}
|
}
|
||||||
for (u32 element = 0; element < 2; ++element) {
|
for (u32 element = 0; element < 2; ++element) {
|
||||||
|
@ -555,7 +554,7 @@ Node4 ShaderIR::GetTextureCode(Instruction instr, TextureType texture_type,
|
||||||
(texture_type == Tegra::Shader::TextureType::TextureCube && is_array && is_shadow));
|
(texture_type == Tegra::Shader::TextureType::TextureCube && is_array && is_shadow));
|
||||||
|
|
||||||
const OperationCode read_method =
|
const OperationCode read_method =
|
||||||
lod_needed && gl_lod_supported ? OperationCode::F4TextureLod : OperationCode::F4Texture;
|
lod_needed && gl_lod_supported ? OperationCode::TextureLod : OperationCode::Texture;
|
||||||
|
|
||||||
UNIMPLEMENTED_IF(process_mode != TextureProcessMode::None && !gl_lod_supported);
|
UNIMPLEMENTED_IF(process_mode != TextureProcessMode::None && !gl_lod_supported);
|
||||||
|
|
||||||
|
@ -671,7 +670,7 @@ Node4 ShaderIR::GetTld4Code(Instruction instr, TextureType texture_type, bool de
|
||||||
for (u32 element = 0; element < values.size(); ++element) {
|
for (u32 element = 0; element < values.size(); ++element) {
|
||||||
auto coords_copy = coords;
|
auto coords_copy = coords;
|
||||||
MetaTexture meta{sampler, GetRegister(array_register), {}, {}, element};
|
MetaTexture meta{sampler, GetRegister(array_register), {}, {}, element};
|
||||||
values[element] = Operation(OperationCode::F4TextureGather, meta, std::move(coords_copy));
|
values[element] = Operation(OperationCode::TextureGather, meta, std::move(coords_copy));
|
||||||
}
|
}
|
||||||
|
|
||||||
return values;
|
return values;
|
||||||
|
@ -707,7 +706,7 @@ Node4 ShaderIR::GetTldsCode(Instruction instr, TextureType texture_type, bool is
|
||||||
for (u32 element = 0; element < values.size(); ++element) {
|
for (u32 element = 0; element < values.size(); ++element) {
|
||||||
auto coords_copy = coords;
|
auto coords_copy = coords;
|
||||||
MetaTexture meta{sampler, array, {}, {lod}, element};
|
MetaTexture meta{sampler, array, {}, {lod}, element};
|
||||||
values[element] = Operation(OperationCode::F4TexelFetch, meta, std::move(coords_copy));
|
values[element] = Operation(OperationCode::TexelFetch, meta, std::move(coords_copy));
|
||||||
}
|
}
|
||||||
return values;
|
return values;
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,12 +156,12 @@ enum class OperationCode {
|
||||||
Logical2HNotEqual, /// (MetaHalfArithmetic, f16vec2 a, f16vec2) -> bool2
|
Logical2HNotEqual, /// (MetaHalfArithmetic, f16vec2 a, f16vec2) -> bool2
|
||||||
Logical2HGreaterEqual, /// (MetaHalfArithmetic, f16vec2 a, f16vec2) -> bool2
|
Logical2HGreaterEqual, /// (MetaHalfArithmetic, f16vec2 a, f16vec2) -> bool2
|
||||||
|
|
||||||
F4Texture, /// (MetaTexture, float[N] coords, float[M] params) -> float4
|
Texture, /// (MetaTexture, float[N] coords) -> float4
|
||||||
F4TextureLod, /// (MetaTexture, float[N] coords, float[M] params) -> float4
|
TextureLod, /// (MetaTexture, float[N] coords) -> float4
|
||||||
F4TextureGather, /// (MetaTexture, float[N] coords, float[M] params) -> float4
|
TextureGather, /// (MetaTexture, float[N] coords) -> float4
|
||||||
F4TextureQueryDimensions, /// (MetaTexture, float a) -> float4
|
TextureQueryDimensions, /// (MetaTexture, float a) -> float4
|
||||||
F4TextureQueryLod, /// (MetaTexture, float[N] coords) -> float4
|
TextureQueryLod, /// (MetaTexture, float[N] coords) -> float4
|
||||||
F4TexelFetch, /// (MetaTexture, int[N], int) -> float4
|
TexelFetch, /// (MetaTexture, int[N], int) -> float4
|
||||||
|
|
||||||
Branch, /// (uint branch_target) -> void
|
Branch, /// (uint branch_target) -> void
|
||||||
PushFlowStack, /// (uint branch_target) -> void
|
PushFlowStack, /// (uint branch_target) -> void
|
||||||
|
|
Loading…
Reference in a new issue