summaryrefslogtreecommitdiffstats
path: root/src/video_core/host_shaders/astc_decoder.comp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* video_core: Modify astc texture decode error fill valueFengChen2022-09-151-1/+1
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-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.
* astc_decoder: Combine FastReplicate functions to work around new NV driver bugameerj2022-01-161-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.
* astc_decoder: Reduce workgroup sizeameerj2021-08-011-1/+1
| | | | This reduces the amount of over dispatching when there are odd dimensions (i.e. ASTC 8x5), which rarely evenly divide into 32x32.
* astc_decoder: Compute offset swizzles in-shaderameerj2021-08-011-33/+13
| | | | Alleviates the dependency on the swizzle table and a uniform which is constant for all ASTC texture sizes.
* astc_decoder: Make use of uvec4 for payload dataameerj2021-08-011-79/+43
|
* astc_decoder: Simplify Select2DPartitionameerj2021-08-011-38/+19
|
* astc_decoder: Optimize the use EncodingDataameerj2021-08-011-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.
* astc_decoder.comp: Remove unnecessary LUT SSBOsameerj2021-06-191-19/+16
| | | | We can move them to instead be compile time constants within the shader.
* astc: Various robustness enhancements for the gpu decoderameerj2021-06-191-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.
* astc_decoder: Fix LDR CEM1 endpoint calculationameerj2021-06-161-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>
* astc_decoder: Refactor for style and more efficient memory useameerj2021-03-251-262/+307
|
* astc_decoder: Reimplement LayersRodrigo Locatti2021-03-131-18/+15
| | | | Reimplements the approach to decoding layers in the compute shader. Fixes multilayer astc decoding when using Vulkan.
* astc_decoder: Fix out of bounds memory accessameerj2021-03-131-2/+10
| | | | resolves a crash with some anamolous textures found in Astral Chain.
* renderer_vulkan: Accelerate ASTC decodingameerj2021-03-131-21/+22
| | | | Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
* renderer_opengl: Accelerate ASTC texture decoding with a compute shaderameerj2021-03-131-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.