aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2019-05-24Merge pull request #2358 from ReinUsesLisp/parallel-shaderbunnei
gl_shader_cache: Use shared contexts to build shaders in parallel at boot
2019-05-21renderer_opengl/gl_shader_decompiler: Remove redundant name specification in ↵Lioncash
format string This accidentally slipped through a rebase.
2019-05-20gl_shader_cache: Fix clang strict standard build issuesReinUsesLisp
2019-05-20gl_shader_cache: Use shared contexts to build shaders in parallelReinUsesLisp
2019-05-20gl_shader_decompiler: Tidy up minor remaining cases of unnecessary ↵Lioncash
std::string concatenation
2019-05-20gl_shader_decompiler: Replace individual overloads with the fmt-based oneLioncash
Gets rid of the need to special-case brace handling depending on the overload used, and makes it consistent across the board with how fmt handles them. Strings with compile-time deducible strings are directly forwarded to std::string's constructor, so we don't need to worry about the performance difference here, as it'll be identical.
2019-05-20gl_shader_decompiler: Utilize fmt overload of AddLine() where applicableLioncash
2019-05-19gl_shader_decompiler: Add AddLine() overload that forwards to fmtLioncash
In a lot of places throughout the decompiler, string concatenation via operator+ is used quite heavily. This is usually fine, when not heavily used, but when used extensively, can be a problem. operator+ creates an entirely new heap allocated temporary string and given we perform expressions like: std::string thing = a + b + c + d; this ends up with a lot of unnecessary temporary strings being created and discarded, which kind of thrashes the heap more than we need to. Given we utilize fmt in some AddLine calls, we can make this a part of the ShaderWriter's API. We can make an overload that simply acts as a passthrough to fmt. This way, whenever things need to be appended to a string, the operation can be done via a single string formatting operation instead of discarding numerous temporary strings. This also has the benefit of making the strings themselves look nicer and makes it easier to spot errors in them.
2019-05-19Merge pull request #2441 from ReinUsesLisp/al2pbunnei
shader: Implement AL2P and ALD.PHYS
2019-05-19Merge pull request #2495 from lioncash/cacheHexagon12
gl_shader_disk_cache: Minor cleanup
2019-05-19Merge pull request #2480 from ReinUsesLisp/fix-quadsHexagon12
gl_rasterizer: Pass the right number of array quad vertices count
2019-05-19Merge pull request #2483 from ReinUsesLisp/fix-point-sizeHexagon12
gl_rasterizer: Limit OpenGL point size to a minimum of 1
2019-05-19Merge pull request #2484 from ReinUsesLisp/triangle-fanSebastian Valle
maxwell_to_gl: Add TriangleFan primitive topology
2019-05-19gl_shader_gen: std::move objects where applicableLioncash
Avoids performing copies into the pair being returned. Instead, we can just move the resources into the pair, avoiding the need to make copies of both the std::string and ShaderEntries struct.
2019-05-19gl_shader_disk_cache: in-class initialize virtual file offset of ↵Lioncash
ShaderDiskCacheOpenGL Given the offset is assigned a fixed value in the constructor, we can just assign it directly and get rid of the need to write the name of the variable again in the constructor initializer list.
2019-05-19gl_shader_disk_cache: Default ShaderDiskCacheOpenGL's destructor in the cpp fileLioncash
Given the disk shader cache contains non-trivial types, we should default it in the cpp file in order to prevent inlining of the complex destruction logic.
2019-05-19gl_shader_disk_cache: Make hash specializations noexceptLioncash
The standard library expects hash specializations that don't throw exceptions. Make this explicit in the type to allow selection of better code paths if possible in implementations.
2019-05-19gl_shader_disk_cache: Remove redundant code string construction in ↵Lioncash
LoadDecompiledEntry() We don't need to load the code into a vector and then construct a string over the data. We can just create a string with the necessary size ahead of time, and read the data directly into it, getting rid of an unnecessary heap allocation.
2019-05-19gl_shader_disk_cache: Make variable non-const in decompiled entry caseLioncash
std::move does nothing when applied to a const variable. Resources can't be moved if the object is immutable. With this change, we don't end up making several unnecessary heap allocations and copies.
2019-05-19gl_shader_disk_cache: Special-case boolean handlingLioncash
Booleans don't have a guaranteed size, but we still want to have them integrate into the disk cache system without needing to actually use a different type. We can do this by supplying non-template overloads for the bool type. Non-template overloads always have precedence during function resolution, so this is safe to provide. This gets rid of the need to smatter ternary conditionals, as well as the need to use u8 types to store the value in.
2019-05-18gl_rasterizer: Limit OpenGL point size to a minimum of 1ReinUsesLisp
2019-05-17maxwell_to_gl: Add TriangleFan primitive topologyReinUsesLisp
2019-05-17gl_rasterizer: Pass the right number of array quad vertices countReinUsesLisp
2019-05-14Merge pull request #2461 from lioncash/unused-varMat M
video_core: Remove a few unused variables and functions
2019-05-13Merge pull request #2413 from FernandoS27/opt-gpuRodrigo Locatti
Rasterizer Cache: refactor flushing & optimize memory usage of surfaces
2019-05-09video_core/renderer_opengl/gl_shader_cache: Correct member initialization orderLioncash
Silences a -Wreorder warning.
2019-05-09video_core/renderer_opengl/gl_shader_decompiler: Remove unused Composite() ↵Lioncash
function This isn't used at all, so it can be removed.
2019-05-09video_core/renderer_opengl/gl_rasterizer_cache: Remove unused variable in ↵Lioncash
UploadGLMipmapTexture() This variable is unused entirely, so it can be removed.
2019-05-09Merge pull request #2443 from ReinUsesLisp/skip-repeated-variantsbunnei
gl_shader_disk_cache: Skip stored shader variants instead of asserting
2019-05-04gl_rasterizer: Silence unused variable warningLioncash
Makes use of src, so it's not considered unused.
2019-05-02gl_shader_decompiler: Skip physical unused attributesReinUsesLisp
2019-05-02shader: Add physical attributes commentariesReinUsesLisp
2019-05-02gl_shader_decompiler: Implement GLSL physical attributesReinUsesLisp
2019-05-02gl_shader_decompiler: Abstract generic attribute operationsReinUsesLisp
2019-05-02gl_shader_decompiler: Declare all possible varyings on physical attribute usageReinUsesLisp
2019-05-02shader: Remove unused AbufNode Ipa modeReinUsesLisp
2019-05-01gl_shader_disk_cache: Skip stored shader variants instead of assertingReinUsesLisp
Instead of asserting on already stored shader variants, silently skip them. This shouldn't be happening but when a shader is invalidated and it is not stored in the shader cache, this assert would hit and save that shader anyways when the asserts are disabled.
2019-04-30Merge pull request #2100 from FreddyFunk/disk-cache-precompiled-filebunnei
gl_shader_disk_cache: Improve precompiled shader cache generation speed and size
2019-04-28Merge pull request #2322 from ReinUsesLisp/wswitchbunnei
video_core: Silent -Wswitch warnings
2019-04-23Re added new lines at the end of filesFreddyFunk
2019-04-23gl_shader_disk_cache: Compress precompiled shader cache file with Zstandardunknown
2019-04-23gl_shader_disk_cache: Use VectorVfsFile for the virtual precompiled shader ↵unknown
cache file
2019-04-23gl_shader_disk_cache: Remove per shader compressionunknown
2019-04-23Merge pull request #2422 from ReinUsesLisp/fixup-samplersHexagon12
gl_state: Fix samplers memory corruption
2019-04-23Merge pull request #2425 from FernandoS27/y-directionHexagon12
Fix flipping on some games by applying Y direction register
2019-04-22Merge pull request #2383 from ReinUsesLisp/aoffi-testbunnei
gl_shader_decompiler: Disable variable AOFFI on unsupported devices
2019-04-22Merge pull request #2403 from FernandoS27/compressed-linearbunnei
Support compressed formats on linear textures.
2019-04-22Merge pull request #2411 from FernandoS27/unsafe-gpubunnei
GPU Manager: Implement ReadBlockUnsafe and WriteBlockUnsafe
2019-04-21Rasterizer Cache: Use a temporal storage for Surfaces loading/flushing.Fernando Sahmkow
This PR should heavily reduce memory usage since temporal buffers are no longer stored per Surface but instead managed by the Rasterizer Cache.
2019-04-19Merge pull request #2409 from ReinUsesLisp/half-floatsbunnei
shader_ir/decode: Miscellaneous fixes to half-float decompilation