SamoZ256
02f8250aff
Merge branch 'master' into metal2
2024-10-31 13:45:58 +01: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
SamoZ256
779e30e3e5
Merge branch 'master' into metal2
2024-09-24 09:22:17 +02: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
offtkp
4176a19256
Fog in ubershader
2024-07-21 17:38:07 +03:00
wheremyfoodat
69c79a7f6c
Ubershader: Add lighting shadergen override
2024-07-20 03:40:50 +03:00
wheremyfoodat
aad7bb817e
Add setting for ubershaders
2024-07-17 02:25:38 +03:00
wheremyfoodat
0ecdf00e64
Add accurate shader multiplication option
2024-07-16 22:14:01 +03:00
wheremyfoodat
f004aa6021
Implement GPUREG_VSH_OUTMAP_MASK
2024-04-29 23:02:33 +03:00
wheremyfoodat
0f973a4ae4
Fix immediate mode vertex submission
2023-08-12 17:52:50 +03:00
wheremyfoodat
9695b57bf5
[PICA] Rework how external registers work, format
2023-08-04 00:42:11 +03:00
GPUCode
f75a23b5a9
code: Better screen support
2023-08-02 22:26:08 +03:00
Wunkolo
d2241a25bc
Stub Vulkan backend support
...
A lot of the architecture of the emulator here does not allow for vulkan
to initialize easily since it involves a bit of data to be exchanged
between SDL and Vulkan. This commit just adds the foundational linkage
and library code for vulkan support.
2023-07-22 13:16:23 -07:00
wheremyfoodat
ae4a4dfc29
Hook up sw rendering backend
2023-07-22 20:47:19 +03:00
wheremyfoodat
31d1c6ff3f
Bonk people who select Vulkan as the renderer
2023-07-18 22:33:59 +03:00
Wunkolo
0b60cf6901
Migrate RenderType string functions to static Renderer functions
...
Also fix some IWYU build errors
2023-07-18 10:02:07 -07:00
Wunkolo
528ed510c2
Add string-based renderer backend configuration
...
Rather than using integer-indices, just use plaintext case-insensitive
names and leave the actual enum indexes as an implementation detail.
2023-07-17 18:02:01 -07:00
Wunkolo
ceff20f57f
Add configurable Renderer backend
...
There are still some initialization errors to work through, such as
config not being initialized properly by the time GPU tries to utilize
it too. Also some life-time issues. But manually forcing it to use the
Null backnd successfully works and allows games to be "played"
headlessly.
2023-07-17 10:13:34 -07:00
wheremyfoodat
7b6cd90d36
Cleanup for #98
2023-07-15 04:56:43 +03:00
Wunkolo
a636a0d1da
Replace ENABLE_OPENGL
with PANDA3DS_ENABLE_OPENGL
2023-07-11 11:28:06 -07:00
Wunkolo
2a1683ba62
Introduce "Renderer" abstraction layer
...
Adds a `renderer` class for which a rendering backend must implement and
will conditionally use OpenGL in the case that `ENABLE_GL` is enabled.
2023-07-11 11:27:35 -07:00
wheremyfoodat
075409130b
Fix typo
2023-07-08 22:06:53 +03:00
wheremyfoodat
817b3de945
[GPU] Implement vertex padding
2023-07-08 20:23:43 +03:00
wheremyfoodat
1037f93f61
Hook shader JIT to config file
2023-07-08 16:23:20 +03:00
wheremyfoodat
53db56ad9d
[GPU] Set lightingLUTDirty to true on reset because paranoia
2023-07-05 21:48:30 +03:00
wheremyfoodat
a3d8f777b4
PicaVertex -> PICA::Vertex
2023-07-04 23:40:47 +03:00
wheremyfoodat
b403e9a66e
Start work on GL state manager object
2023-07-04 23:27:38 +03:00
Sky
12dbaeaeb0
[GL] Initial Implementation of Lighting LUTs
2023-07-02 16:14:11 -07:00
wheremyfoodat
1ac3a474da
Fix formatting & cmake
2023-07-01 22:35:07 +03:00
Sky
ca89909c00
Refactored Vertex Pipeline to always use Pica Formatted Vertex
2023-07-01 11:39:25 -07:00
wheremyfoodat
66d71f817c
Fix triangle fans
2023-07-01 16:39:33 +03:00
wheremyfoodat
ba6779cfa1
Temporarily disable shader JIT by default
2023-07-01 03:43:44 +03:00
wheremyfoodat
3603ee1e13
[ShaderJIT] Move prepare call to top of DrawArrays
2023-06-29 18:50:10 +03:00
wheremyfoodat
2ffb3a58bf
Merge branch 'GamingProcessingUnit' into dynapica
2023-06-29 01:14:40 +03:00
wheremyfoodat
3ec446b0a2
[GPU] Implement vertex cache
2023-06-29 00:56:01 +03:00
wheremyfoodat
02d07f29d7
Merge remote-tracking branch 'origin/GamingProcessingUnit' into dynapica
2023-06-27 18:53:59 +03:00
fleroviux
4cb7e3625b
Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation
2023-06-20 22:47:47 +02:00
fleroviux
9b1ed2084f
[GPU] Implement initial support for multi-texturing
2023-06-20 00:01:12 +02:00
wheremyfoodat
6b5ec74aa4
[OutputVertex] Avoid unnamed struct
2023-06-18 23:59:41 +03:00
wheremyfoodat
952e2d6d22
More accurate VAO implementation
2023-06-18 23:20:28 +03:00
Wunkolo
838d3f27f9
Migrate PICA-types into PICA
namespace
...
Rather than prefixing these types with `PICA`, a namespace is used instead.
2023-06-17 18:23:47 -07:00
Wunkolo
78a3f9fa23
Add PICA texel-format and topology types
...
Slowly stepping the codebase towards having renderer-agnostic types and keeping the translation of PICA-types to OpenGL/VK/DX/Software/etc to the renderer-backend.
2023-06-17 12:26:41 -07:00
Wunkolo
553d23974a
Use std::span
to pass vertex data
...
Starts utilizing
[std::span](https://en.cppreference.com/w/cpp/container/span ) to
indicate a non-owning view of a contiguous array of elements rather than
`T* data, usize count`.
2023-06-16 07:28:35 -07:00
wheremyfoodat
ff3c162ebc
Merge branch 'master' into dynapica
2023-06-11 14:44:24 +03:00
wheremyfoodat
315ab1fa16
Merge branch 'master' into dynapica
2023-06-11 14:43:03 +03:00
wheremyfoodat
ccd7ef3a23
[DSP] Add other pipes for Picross 3D
2023-06-11 14:11:50 +03:00
wheremyfoodat
cba1ce8fb8
Implement 8-bit VRAM writes
2023-06-11 13:14:35 +03:00
wheremyfoodat
bf125bf2cf
Merge branch 'master' into dynapica
2023-06-10 12:55:43 +03:00
Wunkolo
2c94d0d683
Add Helpers:{getBits,getBit}
...
`constexpr` functions for extractint bitfields that lends itself a bit
better to emitting instructions like `bextr` on x86 or `ubfx` on arm64.
And may subjectively make things a bit more readable.
"Extract `5` bits" rather than `& 0x1F`.
2023-06-10 00:48:06 -07:00