199 Commits

Author SHA1 Message Date
wheremyfoodat
04d047ff75 Some formatting 2024-11-22 02:48:32 +02:00
wheremyfoodat
0e94eae483 Force-inline SIMD index buffer functions 2024-11-20 13:10:34 +02:00
wheremyfoodat
cdc61ea95a GL renderer: Add fallback for when driver doesn't provide glDrawRangeElementsBaseVertex (#617)
* GL: Add fallback for when driver doesn't provide glDrawRangeElementsBaseVertex

* GL: Fix fallback when glDrawRangeElementsBaseVertex is absent
2024-10-23 22:43:58 +03:00
wheremyfoodat
8c80099339 Implement shared font relocation 2024-10-22 19:13:25 +03:00
wheremyfoodat
5d28f11ccf GPU: Add optimized NEON path for analyzing index buffers (#613)
* Implement ARM NEON index buffer analysis

* NEON: Fix initial index buffer minima/maxima

* NEON: Fix vertex count comparison for index buffer analysis

* GPU: Add SSE4.1 path for index buffer analysis

* Fix oopsie

* Fix oopsie, again
2024-10-20 20:02:02 +03:00
wheremyfoodat
49a94a13c5 Moar shader decompiler (#559)
* Renderer: Add prepareForDraw callback

* Add fmt submodule and port shader decompiler instructions to it

* Add shader acceleration setting

* Hook up vertex shaders to shader cache

* Shader decompiler: Fix redundant compilations

* Shader Decompiler: Fix vertex attribute upload

* Shader compiler: Simplify generated code for reading and faster compilation

* Further simplify shader decompiler output

* Shader decompiler: More smallen-ing

* Shader decompiler: Get PICA uniforms uploaded to the GPU

* Shader decompiler: Readd clipping

* Shader decompiler: Actually `break` on control flow instructions

* Shader decompiler: More control flow handling

* Shader decompiler: Fix desitnation mask

* Shader Decomp: Remove pair member capture in lambda (unsupported on NDK)

* Disgusting changes to handle the fact that hw shader shaders are 2x as big

* Shader decompiler: Implement proper output semantic mapping

* Moar instructions

* Shader decompiler: Add FLR/SLT/SLTI/SGE/SGEI

* Shader decompiler: Add register indexing

* Shader decompiler: Optimize mova with both x and y masked

* Shader decompiler: Add DPH/DPHI

* Fix shader caching being broken

* PICA decompiler: Cache VS uniforms

* Simply vertex cache code

* Simplify vertex cache code

* Shader decompiler: Add loops

* Shader decompiler: Implement safe multiplication

* Shader decompiler: Implement LG2/EX2

* Shader decompiler: More control flow

* Shader decompiler: Fix JMPU condition

* Shader decompiler: Convert main function to void

* PICA: Start implementing GPU vertex fetch

* More hw VAO work

* More hw VAO work

* More GPU vertex fetch code

* Add GL Stream Buffer from Duckstation

* GL: Actually upload data to stream buffers

* GPU: Cleanup immediate mode handling

* Get first renders working with accelerated draws

* Shader decompiler: Fix control flow analysis bugs

* HW shaders: Accelerate indexed draws

* Shader decompiler: Add support for compilation errors

* GLSL decompiler: Fall back for LITP

* Add Renderdoc scope classes

* Fix control flow analysis bug

* HW shaders: Fix attribute fetch

* Rewriting hw vertex fetch

* Stream buffer: Fix copy-paste mistake

* HW shaders: Fix indexed rendering

* HW shaders: Add padding attributes

* HW shaders: Avoid redundant glVertexAttrib4f calls

* HW shaders: Fix loops

* HW shaders: Make generated shaders slightly smaller

* Fix libretro build

* HW shaders: Fix android

* Remove redundant ubershader checks

* Set accelerate shader default to true

* Shader decompiler: Don't declare VS input attributes as an array

* Change ubuntu-latest to Ubuntu 24.04 because Microsoft screwed up their CI again

* fix merge conflict bug
2024-10-19 16:53:51 +03:00
wheremyfoodat
fa9ce5fc70 GLES: Implement logic ops via fb fetch (#608)
* GLES: Implement logic ops via fb fetch

* Attempt to fix deprecated libglx-mesa0 package

* Update Qt_Build.yml

* GLES: Enable fb fetch instead of requiring it

* GLES: Add support for GL_ARM_shader_framebuffer_fetch

* Fix GL_EXT_shader_framebuffer_fetch behavior
2024-10-14 00:17:24 +03:00
wheremyfoodat
195f3388e9 PICA: Add LITP test + interpreter implementation 2024-08-02 22:53:51 +03:00
wheremyfoodat
32ddc28789 Shadergen: Move fog colour to uniform 2024-07-25 20:18:30 +03:00
wheremyfoodat
be75fa43a3 More shader->GLSL recompiler work 2024-07-24 02:03:29 +03:00
wheremyfoodat
e4d4a35674 Renderer GL: Add UB checks 2024-07-23 04:11:12 +03:00
wheremyfoodat
850aadb0f6 Update Linux version on CI 2024-07-23 02:25:40 +03:00
wheremyfoodat
0aa1ed21b2 More shader decompiler work 2024-07-23 01:22:26 +03:00
wheremyfoodat
a5ea268826 Merge branch 'master' into nyom 2024-07-22 15:46:27 +03:00
wheremyfoodat
85af58f0a7 Remove shader-related hallucinations 2024-07-22 02:06:24 +03:00
wheremyfoodat
2d72b66042 Initial shader decompilation work 2024-07-22 01:47:34 +03:00
offtkp
b8712b37c3 A few kissable changes 2024-07-21 18:26:02 +03:00
wheremyfoodat
d7bca1460c Merge branch 'master' into nyom 2024-07-21 17:52:15 +03:00
wheremyfoodat
8fc61cdb7b Add shader decompiler files 2024-07-21 17:52:06 +03:00
offtkp
b90c15919b Shadergen fog 2024-07-21 17:45:02 +03:00
offtkp
4176a19256 Fog in ubershader 2024-07-21 17:38:07 +03:00
offtkp
b333bf8a0c Use u32 for scale instead of float in FragmentConfig 2024-07-21 17:28:51 +03:00
wheremyfoodat
ed67069487 Merge pull request #547 from OFFTKP/hashing
Fix hashing for FragmentConfig
2024-07-21 14:27:30 +00:00
offtkp
be1c801fc2 Fix hashing for FragmentConfig 2024-07-21 16:55:44 +03:00
wheremyfoodat
2a6cd3c5ea Separate graphics API/Language types from the fragment recompiler 2024-07-21 16:02:22 +03:00