Commit Graph

269 Commits

Author SHA1 Message Date
Paris Oplopoios
8d33dcaa8e Fix scratch1 overwriting (#761) 2025-06-25 03:25:48 +03:00
wheremyfoodat
0a0ea75013 GPU registers: Fix writes to some registers ignoring the mask (#725)
Co-authored-by: henry <23128103+atem2069@users.noreply.github.com>
2025-02-21 20:22:51 +02:00
wheremyfoodat
87652bfeda x64 Shader JIT: Optimize SSE4.1 blending path
Co-Authored-By: Burhan R <53955076+burhanr13@users.noreply.github.com>
2024-11-28 21:36:16 +02:00
wheremyfoodat
bea7b00c7d Draw acceleration: Replace multiplication for component sizes with left shift 2024-11-20 13:40:00 +02:00
Samuliak
d459f9c1c3 Merge branch 'master' into metal2 2024-11-01 08:43:40 +01:00
wheremyfoodat
965ea6d012 Shadergen: Log unimplemented LUT select indices 2024-10-31 22:05:05 +02:00
SamoZ256
02f8250aff Merge branch 'master' into metal2 2024-10-31 13:45:58 +01: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
afaf18f124 GLES: Fix Set logic op 2024-10-14 00:42:35 +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
82068031f3 Shadergen: Pre-allocate space for shadergen string 2024-10-13 23:27:08 +03:00
SamoZ256
779e30e3e5 Merge branch 'master' into metal2 2024-09-24 09:22:17 +02:00
Paris Oplopoios
595e4e0341 More implicit conversion fixes, hopefully the last ones this time (#591)
* No implicit uint conversion

* Update gles.patch
2024-08-28 03:02:54 +03:00
Paris Oplopoios
201edfb02d I hate the gles.patch (#590) 2024-08-27 19:47:27 +03:00
offtkp
e421f02500 GLES <= 3.1 lacks fma, added a define 2024-08-27 17:12:12 +03:00
wheremyfoodat
471bdd6ab9 GPU: Temporarily skip draws if they're too big instead of panicking 2024-08-20 16:02:06 +03:00
Samuliak
58e1a53699 metal: create renderer 2024-08-16 11:06:23 +02:00
wheremyfoodat
195f3388e9 PICA: Add LITP test + interpreter implementation 2024-08-02 22:53:51 +03:00
wheremyfoodat
f095e6af0b Shadergen: Move comments outside of emitted source code 2024-07-26 14:44:11 +03:00
wheremyfoodat
32ddc28789 Shadergen: Move fog colour to uniform 2024-07-25 20:18:30 +03:00
wheremyfoodat
df5d14e3d8 Shadergen: Remove unused vertex shader code 2024-07-25 03:59:01 +03:00
wheremyfoodat
156c3031a2 More instructions in shader decompiler 2024-07-24 16:47:46 +03:00
wheremyfoodat
be75fa43a3 More shader->GLSL recompiler work 2024-07-24 02:03:29 +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
69c79a7f6c Ubershader: Add lighting shadergen override 2024-07-20 03:40:50 +03:00
Paris Oplopoios
af552edd9d Remove dependency of PICA regs in fragment config (#541)
Remove dependency of PICA regs in fragment config

Nyom

Nyom part 2

Nyom 3: The final nyom

Nyom 4: The nyomening

Nyom 5: The final Nyom for real
2024-07-20 02:37:49 +03:00
wheremyfoodat
eb7e02fbc2 Shadergen: Remove redundant whitespace generation 2024-07-19 18:20:21 +03:00
wheremyfoodat
9415cee59a Enable shadergen by default for now 2024-07-19 18:02:42 +03:00
offtkp
e4550b3e4f Fix pokedex3d on specialized shaders 2024-07-19 15:55:02 +03:00
wheremyfoodat
5c1e2912a3 Shadergen: Minimize shader compilation time by caching the default VS 2024-07-19 14:35:01 +03:00
wheremyfoodat
ac55c3e324 Shadergen: Fix small register decoding oopsie 2024-07-19 03:01:12 +03:00
offtkp
25098082c7 Use lutID instead of lutIndex 2024-07-19 02:45:09 +03:00
wheremyfoodat
90abf8a376 Fix signedness mess-ups in shaders 2024-07-19 01:31:04 +03:00
wheremyfoodat
53c76ae0d4 Shadergen: Fix spotlight 2024-07-18 23:57:43 +03:00
wheremyfoodat
bd38f9a8ab Shadergen: Add spotlight 2024-07-18 23:34:23 +03:00
wheremyfoodat
2f50038db9 Shadergen: Lighting almost 100% working 2024-07-18 22:56:05 +03:00
wheremyfoodat
b4ae32960c Moar lighting 2024-07-18 20:10:20 +03:00
wheremyfoodat
00037d8a5e Shadergen: Start implementing lighting 2024-07-18 19:27:12 +03:00
wheremyfoodat
e1268f57b5 Shadergen: Fix attribute declarations 2024-07-18 04:23:00 +03:00
wheremyfoodat
7e480e35ec Shadergen: Upload light uniforms 2024-07-18 03:37:11 +03:00