Shield TV driver bug workaround
shield tv
This commit is contained in:
parent
703ef0e6f0
commit
8a68c58070
1 changed files with 6 additions and 4 deletions
|
@ -618,13 +618,15 @@ static void WriteTevStage(std::string& out, const PicaFSConfig& config, unsigned
|
||||||
if (!IsPassThroughTevStage(stage)) {
|
if (!IsPassThroughTevStage(stage)) {
|
||||||
const std::string index_name = std::to_string(index);
|
const std::string index_name = std::to_string(index);
|
||||||
|
|
||||||
out += fmt::format("vec3 color_results_{}[3] = vec3[3](", index_name);
|
out += fmt::format("vec3 color_results_{}_1 = ", index_name);
|
||||||
AppendColorModifier(out, config, stage.color_modifier1, stage.color_source1, index_name);
|
AppendColorModifier(out, config, stage.color_modifier1, stage.color_source1, index_name);
|
||||||
out += ", ";
|
out += fmt::format(";\nvec3 color_results_{}_2 = ", index_name);
|
||||||
AppendColorModifier(out, config, stage.color_modifier2, stage.color_source2, index_name);
|
AppendColorModifier(out, config, stage.color_modifier2, stage.color_source2, index_name);
|
||||||
out += ", ";
|
out += fmt::format(";\nvec3 color_results_{}_3 = ", index_name);
|
||||||
AppendColorModifier(out, config, stage.color_modifier3, stage.color_source3, index_name);
|
AppendColorModifier(out, config, stage.color_modifier3, stage.color_source3, index_name);
|
||||||
out += ");\n";
|
out += fmt::format(";\nvec3 color_results_{}[3] = vec3[3](color_results_{}_1, "
|
||||||
|
"color_results_{}_2, color_results_{}_3);\n",
|
||||||
|
index_name, index_name, index_name, index_name);
|
||||||
|
|
||||||
// Round the output of each TEV stage to maintain the PICA's 8 bits of precision
|
// Round the output of each TEV stage to maintain the PICA's 8 bits of precision
|
||||||
out += fmt::format("vec3 color_output_{} = byteround(", index_name);
|
out += fmt::format("vec3 color_output_{} = byteround(", index_name);
|
||||||
|
|
Loading…
Reference in a new issue