aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader
AgeCommit message (Collapse)Author
2019-11-14Shader_IR: Implement FLO instruction.Fernando Sahmkow
2019-11-14Merge pull request #3081 from ReinUsesLisp/fswzadd-shufflesFernando Sahmkow
shader: Implement FSWZADD and reimplement SHFL
2019-11-13Merge pull request #3084 from ReinUsesLisp/cast-warningsRodrigo Locatti
video_core: Treat implicit conversions as errors
2019-11-08video_core: Silence implicit conversion warningsReinUsesLisp
2019-11-07shader_ir/warp: Implement FSWZADDReinUsesLisp
2019-11-07gl_shader_decompiler: Reimplement shuffles with platform agnostic intrinsicsReinUsesLisp
2019-11-07Merge pull request #3032 from ReinUsesLisp/simplify-control-flow-brxbunnei
shader/control_flow: Abstract repeated code chunks in BRX tracking
2019-11-07shader/control_flow: Specify constness on caller lambdasRodrigo Locatti
Update src/video_core/shader/control_flow.cpp Co-Authored-By: Mat M. <mathew1800@gmail.com> Update src/video_core/shader/control_flow.cpp Co-Authored-By: Mat M. <mathew1800@gmail.com> Update src/video_core/shader/control_flow.cpp Co-Authored-By: Mat M. <mathew1800@gmail.com> Update src/video_core/shader/control_flow.cpp Co-Authored-By: Mat M. <mathew1800@gmail.com> Update src/video_core/shader/control_flow.cpp Co-Authored-By: Mat M. <mathew1800@gmail.com> Update src/video_core/shader/control_flow.cpp Co-Authored-By: Mat M. <mathew1800@gmail.com>
2019-11-07shader/control_flow: Use callable template instead of std::functionReinUsesLisp
2019-11-07shader/control_flow: Abstract repeated code chunks in BRX trackingReinUsesLisp
Remove copied and pasted for cycles into a common templated function.
2019-11-07shader/control_flow: Silence Intellisense cast warningsReinUsesLisp
2019-11-07shader/control_flow: Remove brace initializer in std containersReinUsesLisp
These containers have a default constructor.
2019-11-07shader/decode: Reduce severity of arithmetic rounding warningsReinUsesLisp
2019-11-07shader/arithmetic: Reduce RRO stub severityReinUsesLisp
2019-11-07shader/texture: Remove NODEP warningsReinUsesLisp
These warnings don't offer meaningful information while decoding shaders. Remove them.
2019-11-06Merge pull request #3039 from ReinUsesLisp/cleanup-samplersRodrigo Locatti
shader/node: Unpack bindless texture encoding
2019-10-30Shader_IR: Fix regression on TLD4Fernando Sahmkow
Originally on the last commit I thought TLD4 acted the same as TLD4S and didn't have a mask. It actually does have a component mask. This commit corrects that.
2019-10-30Shader_IR: Fix TLD4 and add Bindless Variant.Fernando Sahmkow
This commit fixes an issue where not all 4 results of tld4 were being written, the color component was defaulted to red, among other things. It also implements the bindless variant.
2019-10-29shader/node: Unpack bindless texture encodingReinUsesLisp
Bindless textures were using u64 to pack the buffer and offset from where they come from. Drop this in favor of separated entries in the struct. Remove the usage of std::set in favor of std::list (it's not std::vector to avoid reference invalidations) for samplers and images.
2019-10-26Merge pull request #2976 from FernandoS27/cache-fast-brx-rebasedRodrigo Locatti
Implement Fast BRX, fix TXQ and addapt the Shader Cache for it
2019-10-26Shader_IR: Address Feedback.Fernando Sahmkow
2019-10-26Merge pull request #3027 from lioncash/lookupRodrigo Locatti
shader_ir: Use std::array with std::pair instead of std::unordered_map
2019-10-25Merge pull request #3013 from FernandoS27/tld4s-fixRodrigo Locatti
Shader_Ir: Fix TLD4S from using a component mask.
2019-10-25gl_shader_cache: Implement locker variants invalidationReinUsesLisp
2019-10-25gl_shader_disk_cache: Store and load fast BRXReinUsesLisp
2019-10-25const_buffer_locker: Minor style changesReinUsesLisp
2019-10-25gl_shader_decompiler: Move entries to a separate functionReinUsesLisp
2019-10-25Shader_IR: Implement Fast BRX and allow multi-branches in the CFG.Fernando Sahmkow
2019-10-25Shader_IR: Correct typo in Consistent method.Fernando Sahmkow
2019-10-25Shader_IR: allow lookup of texture samplers within the shader_ir for ↵Fernando Sahmkow
instructions that don't provide it
2019-10-25Shader_IR: Implement Fast BRX and allow multi-branches in the CFG.Fernando Sahmkow
2019-10-25Shader_Cache: setup connection of ConstBufferLockerFernando Sahmkow
2019-10-25VideoCore: Unify const buffer accessing along engines and provide ↵Fernando Sahmkow
ConstBufferLocker class to shaders.
2019-10-25Shader_IR: Implement BRX tracking.Fernando Sahmkow
2019-10-24shader_ir: Use std::array with pair instead of unordered_mapLioncash
Given the overall size of the maps are very small, we can use arrays of pairs here instead of always heap allocating a new map every time the functions are called. Given the small size of the maps, the difference in container lookups are negligible, especially given the entries are already sorted.
2019-10-23video_core/shader: Resolve instances of variable shadowingLioncash
Silences a few -Wshadow warnings.
2019-10-22Shader_Ir: Fix TLD4S from using a component mask.Fernando Sahmkow
TLD4S always outputs 4 values, the previous code checked a component mask and omitted those values that weren't part of it. This commit corrects that and makes sure all 4 values are set.
2019-10-22shader_ir/memory: Ignore global memory when tracking failsReinUsesLisp
Ignore global memory operations instead of invoking undefined behaviour when constant buffer tracking fails and we are blasting through asserts, ignore the operation. In the case of LDG this means filling the destination registers with zeroes; for STG this means ignore the instruction as a whole. The default behaviour is still to abort execution on failure.
2019-10-17video_core/shader/ast: Make ShowCurrentState() and SanityCheck() const ↵Lioncash
member functions These can also trivially be made const member functions, with the addition of a few consts.
2019-10-17video_core/shader/ast: Make ASTManager::Print a const member functionLioncash
Given all visiting functions never modify the nodes, we can trivially make this a const member function.
2019-10-17video_core/shader/ast: Make ExprPrinter members privateLioncash
This member already has an accessor, so there's no need for it to be public.
2019-10-17video_core/shader/ast: Make Indent() return a string_viewLioncash
The returned string is simply a substring of our constexpr tabs string_view, so we can just use a string_view here as well, since the original string_view is guaranteed to always exist. Now the function is fully non-allocating.
2019-10-17video_core/shader/ast: Make Indent() privateLioncash
It's never used outside of this class, so we can narrow its scope down.
2019-10-17video_core/shader/ast: Rename Ident() to Indent()Lioncash
This can be confusing, given "ident" is generally used as a shorthand for "identifier".
2019-10-17video_core/shader/ast: Make use of fmt where applicableLioncash
Makes a few strings nicer to read and also eliminates a bit of string churn with operator+.
2019-10-17Merge pull request #2980 from lioncash/warnbunnei
maxwell_3d: Silence truncation warnings
2019-10-15control_flow: Silence truncation warningsLioncash
This can be trivially fixed by making the input size a size_t. CFGRebuildState's constructor parameter is already a std::size_t, so this just makes the size type fully conform with it.
2019-10-15shader/node: std::move Meta instance within OperationNode constructorLioncash
Allows usages of the constructor to avoid an unnecessary copy.
2019-10-07shader/half_set_predicate: Fix HSETP2 for constant buffersReinUsesLisp
HSETP2 when used with a constant buffer parses the second operand type as F32. This is not configurable.
2019-10-07shader/half_set_predicate: Reduce DEBUG_ASSERT to LOG_DEBUGReinUsesLisp