Commit graph

200 commits

Author SHA1 Message Date
wheremyfoodat
082b6216b3
Update home menu branch (#759)
* Fix typo (#680)

Co-authored-by: Noumi <139501014+noumidev@users.noreply.github.com>

* More PTM stuff

Co-Authored-By: Noumi <139501014+noumidev@users.noreply.github.com>

* Make system language configurable

* Fix building crypto++ for x64 target on Apple silicon MacOS

* Attempt to switch to M1 runners again

* Prevent selecting Vulkan renderer in Qt frontend and present a message

* Libretro: Add system language option

* Only enable audio by default on libretro for now

* CMake: Bump version

* Store configuration file in AppData root if not in working directory (#693)

* Store configuration file in AppData root if not in working directory

This fixes MacOS app bundles, as the emulator cannot write the config
file into the app bundle.

* Remove duplicate fs calls

* I'm an idiot sandwich

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>

* GL: Add usingGLES to driverInfo struct (#694)

* Wayland fixes part 1

* Support GLES on desktop

* Qt: Fix Wayland support

Qt will only create a Wayland surface when show() is called on the main
window and on the ScreenWidget. Thus, call the function before creating
the GL context.

Doesn't cause regressions on XWayland, untested in other platforms.

Fixes #586

* No need to call screen->show() twice

* Fix disabling Wayland & building on some distros (#700)

* GLES: Properly stub out logic ops

* Fix git versioning

* Android_Build: Implement ccache (#703)

* Android_Build: Implement ccache

* Update Android_Build.yml

* Update Android_Build.yml

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>

* Removed dead Citra link in readme (#706)

* CRO: Lighter icache flushes

* Implement Luma icache SVCs

* Add missing SVC logs

* GPU: Add sw texture copies

* Use vk::detail::DynamicLoader instead of vk::DynamicLoader (#710)

* Use vk::detail::DynamicLoader instead of vk::DynamicLoader

* Update renderer_vk.cpp

* Vk: Fix typo

* Vk: Lock CI runners to SDK version 1.3.301 temporarily

* Vk: Fixing CI pt 2

* Vulkan: Fixing CI pt 3

* Vk: Fix typo

* Temporarily give 80MB to all processes (#715)

* Try to cross-compile Libretro core for arm64 (#717)

* Try to cross-compile Libretro core for arm64

* Bonk

* Update Hydra_Build.yml

* [WIP] Libretro: Add audio support (#714)

* Libretro: Add audio support

* Adding audio interface part 1

* Audio device pt 2

* More audio device

* More audio device

* Morea uudi odevice

* More audio device

* More audio device

* More audio device

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>

* Libretro audio device: Fix frame count

* Mark audio devices as final

* Add toggle for libretro audio device (#719)

* Very important work (#720)

* Very important work

* Most important fix

* Add more HLE service calls for eshop (#721)

* CI: Fix Vulkan SDK action (#723)

* GPU registers: Fix writes to some registers ignoring the mask (#725)

Co-authored-by: henry <23128103+atem2069@users.noreply.github.com>

* OLED theme

* OLED theme config fix (#736)

Co-authored-by: smiRaphi <neogt404@gmail.com>

* Adding Swedish translation

* Fix Metal renderer compilation on iOS

* [Core] Improve iOS compilation workflow

* [Qt] Hook Swedish to UI

* AppDataDocumentProvider: Typo (#740)

* More iOS work

* More iOS progress

* More iOS work

* AppDataDocumentProvider: Add missing ``COLUMN_FLAGS`` in the default document projectation (#741)

Fixes unable to copy files from device to app's internal storage problem

* More iOS work

* ios: Simplify MTKView interface (still doesn't work though)

* ios: Pass CAMetalLayer instead of void* to Obj-C++ bridging header

* Fix bridging cast

* FINALLY IOS GRAPHICS

* ios: Remove printf spam

* Metal: Reimplement some texture formats on iOS

* metal: implement texture decoder

* metal: check for format support

* metal: implement texture swizzling

* metal: remove unused texture functions

* Shadergen types: Add Metal & MSL

* Format

* Undo submodule changes

* Readme: Add Chonkystation 3

* Metal: Use std::unique_ptr for texture decode

* AppDataDocumentProvider: Allow to remove documents (#744)

* AppDataDocumentProvider: Allow to remove documents

* Typo

* Metal renderer fixes for iOS

* iOS driver: Add doc comments

* iOS: Add frontend & frontend build files (#746)

* iOS: Add SwiftUI part to repo

* Add iOS build script

* Update SDL2 submodule

* Fix iOS build script

* CI: Update xcode tools for iOS

* Update iOS_Build.yml

* Update iOS build

* Lower XCode version

* A

* Update project.pbxproj

* Update iOS_Build.yml

* Update iOS_Build.yml

* Update build.sh

* iOS: Fail on build error

* iOS: Add file picker (#747)

* iOS: Add file picker

* Fix lock placement

* Qt: Add runpog icon (#752)

* Update discord-rpc submodule (#753)

* Remove cryptoppwin submodule (#754)

* Add optional texture hashing

* Fix build on new Vk SDK (#757)

Co-authored-by: Nadia Holmquist Pedersen <893884+nadiaholmquist@users.noreply.github.com>

* CI: Use new Vulkan SDK

---------

Co-authored-by: Noumi <139501014+noumidev@users.noreply.github.com>
Co-authored-by: Thomas <thomas@thomasw.dev>
Co-authored-by: Thomas <twvd@users.noreply.github.com>
Co-authored-by: Daniel López Guimaraes <danielectra@outlook.com>
Co-authored-by: Jonian Guveli <jonian@hardpixel.eu>
Co-authored-by: Ishan09811 <156402647+Ishan09811@users.noreply.github.com>
Co-authored-by: Auxy6858 <71662994+Auxy6858@users.noreply.github.com>
Co-authored-by: Paris Oplopoios <parisoplop@gmail.com>
Co-authored-by: henry <23128103+atem2069@users.noreply.github.com>
Co-authored-by: smiRaphi <neogt404@gmail.com>
Co-authored-by: smiRaphi <87574679+smiRaphi@users.noreply.github.com>
Co-authored-by: Daniel Nylander <po@danielnylander.se>
Co-authored-by: Samuliak <samuliak77@gmail.com>
Co-authored-by: Albert <45282415+ggrtk@users.noreply.github.com>
Co-authored-by: Nadia Holmquist Pedersen <893884+nadiaholmquist@users.noreply.github.com>
2025-06-23 04:59:22 +03:00
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
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
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
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
7e480e35ec Shadergen: Upload light uniforms 2024-07-18 03:37:11 +03:00
wheremyfoodat
ccf9693877 Shadergen: More lighting work 2024-07-18 02:57:41 +03:00
wheremyfoodat
ed00ddc805 Improve lighting register definitions 2024-07-18 00:55:57 +03:00
wheremyfoodat
d013582223 Shadergen: Optimize caching 2024-07-17 21:53:19 +03:00
wheremyfoodat
219a560cbe Merge branch 'master' into specialized-shaders-2 2024-07-17 00:10:09 +03:00
wheremyfoodat
0ecdf00e64 Add accurate shader multiplication option 2024-07-16 22:14:01 +03:00
wheremyfoodat
441aa2346c Shadergen: Add clipping 2024-07-16 02:20:37 +03:00
wheremyfoodat
0878474e01 Shader recompiler: Add depth mapping 2024-07-15 04:30:04 +03:00
wheremyfoodat
c8eb1c1128 Shader recompiler: Add UBO 2024-07-15 04:10:55 +03:00
wheremyfoodat
fe4bbea2ef Merge branch 'master' into specialized-shaders-2 2024-07-15 02:53:32 +03:00
wheremyfoodat
133082c232 x64 shader rec: Add support for PICA non-IEEE multiplication 2024-07-15 02:12:04 +03:00
wheremyfoodat
842943fa4c GLSL shader gen: Add alpha test (...half of it I guess) 2024-05-13 00:51:40 +03:00
wheremyfoodat
798c651a17 Merge branch 'specialized-shaderz' into specialized-shaders-2 2024-05-12 23:20:12 +03:00
wheremyfoodat
81932421cf Optimize float uniform setting 2024-05-02 00:28:13 +03:00
wheremyfoodat
70f733ffb8 GPU: Handle invalid floating point uniform writes 2024-05-02 00:22:13 +03:00
wheremyfoodat
f004aa6021 Implement GPUREG_VSH_OUTMAP_MASK 2024-04-29 23:02:33 +03:00
Wunkolo
2b34ef4a89 Implement PICA200 compliant arm64 MUL
Adds `emitSafeMUL` to implement a PICA200 compliant multiplication that
handles the special `0 * inf = 0` case.
2024-03-14 12:30:42 -07:00
wheremyfoodat
25d8e5807f
Fix dynarmic submodule (#446)
* Remove dynarmic submodule

* Add dynarmic mirror

* Update oaknut

* Update shader JIT to work with latest oaknut

* Maybe fix oaknut finally

* hlep

* More arm64 shader derps

* Fixing more shader JIT brokenness

* aaaaaaaaaaaa

* Update shader_rec_emitter_arm64.hpp

* Update shader_rec_emitter_arm64.cpp
2024-03-07 19:47:21 +02:00