summaryrefslogtreecommitdiffstats
path: root/src/video_core/host_shaders/astc_decoder.comp (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-09-15video_core: Modify astc texture decode error fill valueFengChen1-1/+1
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-3/+2
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-01-16astc_decoder: Combine FastReplicate functions to work around new NV driver bugameerj1-34/+46
The new Nvidia drivers have a bug where the FastReplicateTo6 function produces a lookup into the REPLICATE_TO_8 table rather than the REPLICATE_TO_6 table. This seems to be an optimization gone wrong. Combining the logic of the FastReplicate functions seems to address the bug.
2021-08-01astc_decoder: Reduce workgroup sizeameerj1-1/+1
This reduces the amount of over dispatching when there are odd dimensions (i.e. ASTC 8x5), which rarely evenly divide into 32x32.
2021-08-01astc_decoder: Compute offset swizzles in-shaderameerj1-33/+13
Alleviates the dependency on the swizzle table and a uniform which is constant for all ASTC texture sizes.
2021-08-01astc_decoder: Make use of uvec4 for payload dataameerj1-79/+43
2021-08-01astc_decoder: Simplify Select2DPartitionameerj1-38/+19
2021-08-01astc_decoder: Optimize the use EncodingDataameerj1-25/+25
This buffer was a list of EncodingData structures sorted by their bit length, with some duplication from the cpu decoder implementation. We can take advantage of its sorted property to optimize its usage in the shader. Thanks to wwylele for the optimization idea.
2021-06-19astc_decoder.comp: Remove unnecessary LUT SSBOsameerj1-19/+16
We can move them to instead be compile time constants within the shader.
2021-06-19astc: Various robustness enhancements for the gpu decoderameerj1-9/+6
These changes should help in reducing crashes/drivers panics that may occur due to synchronization issues between the shader completion and later access of the decoded texture.
2021-06-16astc_decoder: Fix LDR CEM1 endpoint calculationameerj1-1/+1
Per the spec, L1 is clamped to the value 0xff if it is greater than 0xff. An oversight caused us to take the maximum of L1 and 0xff, rather than the minimum. Huge thanks to wwylele for finding this. Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2021-03-25astc_decoder: Refactor for style and more efficient memory useameerj1-262/+307
2021-03-13astc_decoder: Reimplement LayersRodrigo Locatti1-18/+15
Reimplements the approach to decoding layers in the compute shader. Fixes multilayer astc decoding when using Vulkan.
2021-03-13astc_decoder: Fix out of bounds memory accessameerj1-2/+10
resolves a crash with some anamolous textures found in Astral Chain.
2021-03-13renderer_vulkan: Accelerate ASTC decodingameerj1-21/+22
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2021-03-13renderer_opengl: Accelerate ASTC texture decoding with a compute shaderameerj1-0/+1288
ASTC texture decoding is currently handled by a CPU decoder for GPU's without native ASTC decoding support (most desktop GPUs). This is the cause for noticeable performance degradation in titles which use the format extensively. This commit adds support to accelerate ASTC decoding using a compute shader on OpenGL for GPUs without native support.