aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
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-24Merge pull request #3028 from lioncash/constexprRodrigo Locatti
shader_bytecode: Make Matcher constexpr capable
2019-10-24shader_bytecode: Make Matcher constexpr capableLioncash
Greatly shrinks the amount of generated code for GetDecodeTable(). Collapses an assembly output of 9000+ lines down to ~3621 with Clang, and 6513 down to ~2616 with GCC, given it's now allowed to construct all the entries as a sequence of constant data.
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-22Merge pull request #2995 from ReinUsesLisp/ignore-gmemFernando Sahmkow
shader_ir/memory: Ignore global memory when tracking fails
2019-10-22Merge pull request #2983 from lioncash/fallthroughFernando Sahmkow
gl_shader_decompiler/vk_shader_decompiler: Resolve implicit fallthrough cases
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-20maxwell_3d: Reduce FlushMMEInlineDraw logging to TraceReinUsesLisp
2019-10-18Merge pull request #2994 from lioncash/fmtRodrigo Locatti
video_core/shader/ast: Minor changes to ASTPrinter
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-17Merge pull request #2993 from lioncash/vulkan-exprRodrigo Locatti
vk_shader_decompiler: Mark operator() function parameters as const references
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-17vk_shader_decompiler: Mark operator() function parameters as const referencesLioncash
These parameters aren't actually modified in any way, so they can be made const references.
2019-10-17Merge pull request #2966 from FernandoS27/astc-formatsRodrigo Locatti
Implement a series of ASTC formats and R4G4B4A4 format
2019-10-17Merge pull request #2979 from lioncash/macroRodrigo Locatti
video_core/macro_interpreter: Make definitions of most private enums/unions hidden
2019-10-17Fermi2D: Use a different formula for delimiting blit areas.Fernando Sahmkow
2019-10-17video_core/macro_interpreter: Make definitions of most private enums/unions ↵Lioncash
hidden This allows the implementation of these types to change without requiring a rebuild of everything that includes the macro interpreter header.
2019-10-17Merge pull request #2980 from lioncash/warnbunnei
maxwell_3d: Silence truncation warnings
2019-10-17Fermi2D: limit blit area to only available areaFernando Sahmkow
Normaly OpenGL does not care if the areas exceed the texture regions but other backends such as Vulkan do care about the limits of this areas. This PR crops the areas of the blit in order that they don't surpass the limits of the textures. This should help Vulkan and faulty OpenGL drivers
2019-10-16Merge pull request #2978 from lioncash/doxygenRodrigo Locatti
video_core/texture_cache: Amend Doxygen references
2019-10-16Merge pull request #2982 from lioncash/surfaceRodrigo Locatti
texture_cache: Avoid unnecessary surface copies within PickStrategy() and TryReconstructSurface()
2019-10-16Merge pull request #2912 from FernandoS27/async-fixesbunnei
General fixes to Async GPU
2019-10-15Merge pull request #2984 from lioncash/fallthrough2Rodrigo Locatti
video_core/surface: Add missing break in PixelFormatFromTextureFormat()
2019-10-15video_core/surface: Add missing break in PixelFormatFromTextureFormat()Lioncash
Prevents fallthrough into the following case.
2019-10-15Merge pull request #2981 from lioncash/copyRodrigo Locatti
gl_shader_decompiler: Minor cleanup-related changes
2019-10-15vk_shader_decompiler: Resolve fallthrough within ExprDecompiler's ↵Lioncash
ExprCondCode operator() This would previously result in NeverExecute and UnusedIndex being treated as regular predicates.
2019-10-15gl_shader_decompiler: Resolve fallthrough within ExprDecompiler's ↵Lioncash
ExprCondCode operator() This would previously result in NeverExecute and UnusedIndex being treated as regular predicates.
2019-10-15texture_cache: Avoid unnecessary surface copies within PickStrategy() and ↵Lioncash
TryReconstructSurface() We can take these by const reference and avoid making unnecessary copies, preventing some atomic reference count increments and decrements.
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-15gl_shader_decompiler: Make ExprDecompiler's GetResult() a const member functionLioncash
This is only ever used to read, but not write, the resulting string, so we can enforce this by making it a const member function.
2019-10-15gl_shader_decompiler: Use a std::string_view with GetDeclarationWithSuffix()Lioncash
This allows the function to be completely non-allocating for inputs of all sizes (i.e. there's no heap cost for an input to convert to a std::string_view).
2019-10-15gl_shader_decompiler: Fold flow_var constant into GetFlowVariable()Lioncash
This is only ever used within this function, so we can narrow it's scope down.
2019-10-15gl_shader_decompiler: Mark ASTDecompiler/ExprDecompiler parameters as const ↵Lioncash
references where applicable These member functions don't actually modify the input parameter, so we can make this explicit with the use of const.
2019-10-15gl_shader_decompiler: Pass by reference to GenerateTextureArgument()Lioncash
Avoids an unnecessary atomic reference count increment and decrement.
2019-10-15gl_shader_decompiler: Use std::holds_alternative within GenerateTexture()Lioncash
This only ever queries if the type exists within the variant, but doesn't actually do anything with the return value. We can just use std::holds_alternative for this use case.
2019-10-15shader/node: std::move Meta instance within OperationNode constructorLioncash
Allows usages of the constructor to avoid an unnecessary copy.