1
0
Fork 0
forked from suyu/suyu

Merge pull request #1537 from lioncash/shader

gl_shader_decompiler: Minor changes
This commit is contained in:
bunnei 2018-10-22 22:49:49 -04:00 committed by GitHub
commit 4cccfb4190
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -378,8 +378,8 @@ public:
* @param reg The destination register to use. * @param reg The destination register to use.
* @param elem The element to use for the operation. * @param elem The element to use for the operation.
* @param value The code representing the value to assign. Type has to be half float. * @param value The code representing the value to assign. Type has to be half float.
* @param type Half float kind of assignment. * @param merge Half float kind of assignment.
* @param dest_num_components Number of components in the destionation. * @param dest_num_components Number of components in the destination.
* @param value_num_components Number of components in the value. * @param value_num_components Number of components in the value.
* @param is_saturated Optional, when True, saturates the provided value. * @param is_saturated Optional, when True, saturates the provided value.
* @param dest_elem Optional, the destination element to use for the operation. * @param dest_elem Optional, the destination element to use for the operation.
@ -422,6 +422,7 @@ public:
* @param reg The destination register to use. * @param reg The destination register to use.
* @param elem The element to use for the operation. * @param elem The element to use for the operation.
* @param attribute The input attribute to use as the source value. * @param attribute The input attribute to use as the source value.
* @param input_mode The input mode.
* @param vertex The register that decides which vertex to read from (used in GS). * @param vertex The register that decides which vertex to read from (used in GS).
*/ */
void SetRegisterToInputAttibute(const Register& reg, u64 elem, Attribute::Index attribute, void SetRegisterToInputAttibute(const Register& reg, u64 elem, Attribute::Index attribute,
@ -951,7 +952,7 @@ private:
// Can't assign to the constant predicate. // Can't assign to the constant predicate.
ASSERT(pred != static_cast<u64>(Pred::UnusedIndex)); ASSERT(pred != static_cast<u64>(Pred::UnusedIndex));
const std::string variable = 'p' + std::to_string(pred) + '_' + suffix; std::string variable = 'p' + std::to_string(pred) + '_' + suffix;
shader.AddLine(variable + " = " + value + ';'); shader.AddLine(variable + " = " + value + ';');
declr_predicates.insert(std::move(variable)); declr_predicates.insert(std::move(variable));
} }
@ -1058,7 +1059,7 @@ private:
/* /*
* Transforms the input string GLSL operand into an unpacked half float pair. * Transforms the input string GLSL operand into an unpacked half float pair.
* @note This function returns a float type pair instead of a half float pair. This is because * @note This function returns a float type pair instead of a half float pair. This is because
* real half floats are not standarized in GLSL but unpackHalf2x16 (which returns a vec2) is. * real half floats are not standardized in GLSL but unpackHalf2x16 (which returns a vec2) is.
* @param operand Input operand. It has to be an unsigned integer. * @param operand Input operand. It has to be an unsigned integer.
* @param type How to unpack the unsigned integer to a half float pair. * @param type How to unpack the unsigned integer to a half float pair.
* @param abs Get the absolute value of unpacked half floats. * @param abs Get the absolute value of unpacked half floats.
@ -3291,8 +3292,8 @@ private:
Tegra::Shader::VmadType type, u64 byte_height) { Tegra::Shader::VmadType type, u64 byte_height) {
const std::string value = [&]() { const std::string value = [&]() {
if (!is_chunk) { if (!is_chunk) {
const auto offset = static_cast<u32>(byte_height * 8); const auto shift = static_cast<u32>(byte_height * 8);
return "((" + op + " >> " + std::to_string(offset) + ") & 0xff)"; return "((" + op + " >> " + std::to_string(shift) + ") & 0xff)";
} }
const std::string zero = "0"; const std::string zero = "0";