Commit Graph
110 Commits
Author SHA1 Message Date
wheremyfoodatandGitHub 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
wheremyfoodatandGitHub 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 a0e506affc Share fragment UBO between shadergen programs 2024-07-25 19:51:29 +03:00
offtkp 4176a19256 Fog in ubershader 2024-07-21 17:38:07 +03:00
wheremyfoodat f219432c6a Renderer GL: Don't leak shader/UBO handles 2024-07-20 23:18:52 +03:00
wheremyfoodat 69c79a7f6c Ubershader: Add lighting shadergen override 2024-07-20 03:40:50 +03:00
wheremyfoodat 5c1e2912a3 Shadergen: Minimize shader compilation time by caching the default VS 2024-07-19 14:35:01 +03:00
wheremyfoodatandGitHub cab30494f6 Merge pull request #531 from OFFTKP/pandra
Improve lighting
2024-07-18 00:38:55 +00:00
wheremyfoodat aad7bb817e Add setting for ubershaders 2024-07-17 02:25:38 +03:00
wheremyfoodat a4ec770587 Add UBO/BlendEquation/BlendFunc to GL state manager 2024-07-17 01:32:55 +03:00
wheremyfoodat 2cd50e7f37 Clean up ubershader code 2024-07-15 15:11:23 +03:00
wheremyfoodat c8eb1c1128 Shader recompiler: Add UBO 2024-07-15 04:10:55 +03:00
wheremyfoodat c73758959b Merge branch 'master' into specialized-shaders-2 2024-07-14 23:57:12 +03:00
wheremyfoodat 186fd3b94b Qt: Shader editor now works 2024-07-14 16:06:52 +03:00
wheremyfoodat d87477832b Qt: Initial shader editor support 2024-07-14 15:32:26 +03:00
offtkp a3886a948f Switch to GL_TEXTURE_2D for lighting LUT 2024-07-09 20:51:09 +03:00
wheremyfoodat 842943fa4c GLSL shader gen: Add alpha test (...half of it I guess) 2024-05-13 00:51:40 +03:00
wheremyfoodat 67fe3214fe Add shader cache 2024-03-02 20:41:23 +02:00
wheremyfoodat fdfb012aa1 GL: Add RendererGL::getSpecializedShader 2024-02-29 01:28:00 +02:00
wheremyfoodat ef2467bc60 TEV definitions for shader generator 2024-01-18 02:59:29 +02:00
wheremyfoodatandGitHub 5a2e554a6c Make incomplete framebuffers warn instead of panic 2023-10-31 23:51:34 +02:00
wheremyfoodat e900e9d614 Add Renderer::deinitGraphicsContext 2023-10-25 22:46:45 +03:00
offtkp b5b94a3526 Add some renderer related helper functions in emulator and renderergl 2023-10-20 02:59:53 +03:00
wheremyfoodat 5155682e0f Get emulator rendering working with Qt 2023-10-01 01:28:08 +03:00
wheremyfoodat 7bbf37bb63 Implement reading texture from NULL 2023-08-18 16:19:54 +03:00
wheremyfoodat 0f5c41cd69 Add clear colour to GL state manager 2023-08-12 17:02:00 +03:00
wheremyfoodat 9e529d73f4 Partially revert depth/color buffer cache bump 2023-08-07 00:01:23 +03:00
wheremyfoodat 9d75849600 [GL] Lock Helpers::format calls behind GPU_DEBUG_INFO macro 2023-08-06 15:20:48 +03:00
GPUCode 82d9511993 gpu: Implement basic texcopy
* Improves rendering in FE:A but the screens will still not show
  because it requires surface validation
2023-08-06 14:43:30 +03:00
wheremyfoodat 0b4497302b [GSP::GPU] Proper type assertions and visibility 2023-08-04 16:36:50 +03:00
wheremyfoodat 73a18e3609 Switch out math_util.hpp 2023-08-04 16:14:41 +03:00
wheremyfoodat 952e2a06f9 Move opengl.hpp to third_party 2023-08-04 14:16:56 +03:00
wheremyfoodat 9695b57bf5 [PICA] Rework how external registers work, format 2023-08-04 00:42:11 +03:00
GPUCode c805504f70 gpu: Add display transfer rectangles 2023-08-03 16:37:19 +03:00
GPUCode f75a23b5a9 code: Better screen support 2023-08-02 22:26:08 +03:00
wheremyfoodat 73321856c8 Mooore 2023-07-28 03:03:10 +03:00
wheremyfoodat adb78bf838 [GL] More state stuff 2023-07-28 01:35:49 +03:00
wheremyfoodat 64fa970468 [GL] Actually implement logic ops 2023-07-27 21:57:50 +03:00
wheremyfoodat b4cc743608 [GL] Add stencil enable to state tracker 2023-07-27 15:34:21 +03:00
GPUCode c6c71bb9b2 renderer_gl: Implement semi proper clears 2023-07-26 22:34:39 +03:00
GPUCode 6f7874227c renderer_gl: Implement logic op 2023-07-26 22:08:20 +03:00
wheremyfoodatandGPUCode 95a8917589 renderer_gl: Implement stencil testing 2023-07-26 22:05:30 +03:00
Wunkolo b048d4dd6e Add SDL_Window to initGraphicsContext prototype
This value is needed for vulkan to properly allocate a surface, and would benefit OpenGL to move more of its initialization code into here rather than in `emulator.cpp`.
2023-07-22 13:16:23 -07:00
wheremyfoodatandGitHub fbcb7cee42 Merge pull request #128 from GPUCode/span-across
texture: Use spans
2023-07-20 16:10:00 +03:00
GPUCode a019d98af9 texture: Use spans 2023-07-20 15:43:24 +03:00
Wunkolo b10e69de0e Add virtual deconstructor override
Virtual classes need to override the base-type deconstructor so that they are proper called when referred to by their base-type.
2023-07-17 09:30:12 -07:00
wheremyfoodat 7b6cd90d36 Cleanup for #98 2023-07-15 04:56:43 +03:00
Wunkolo 2f45714240 Add override-specifier to renderer implementation 2023-07-11 11:28:06 -07:00
Wunkolo 666fd96e7f Move color/depth format and size to Renderer interface
The state of these values are not specific to any rendering backend and
can be moved to be part of the interface itself
2023-07-11 11:28:06 -07:00
Wunkolo 4864c51125 Migrate OpenGL specific headers to renderer_gl 2023-07-11 11:28:06 -07:00