Commit Graph

137 Commits (5420d699e2ef0b72f96ca3647fa8177b84976a27)

Author SHA1 Message Date
Stenzek 3130e16438
FullscreenUI: Add user-selectable backgrounds 2 years ago
Stenzek 4c801c3ff3
GPUDevice: Move size-matches check into ResizeTexture() 2 years ago
Stenzek f51dda3e66
GPUDevice: Allow this-frame pooled textures when not uploading data
It won't break the render pass.
2 years ago
Stenzek 2d659fc3eb
GPU: Move backend work off CPU thread 2 years ago
Stenzek 6e2223b517
OpenGLDevice: Fix surfaceless context switch 2 years ago
Stenzek f0c456893c
GPUDevice: Support pre-rotating swap chains 2 years ago
Stenzek acf04ed67a
GPUDevice: Use row-major matrix packing
With column vectors. mul() turns into dot products instead of madds.
2 years ago
Stenzek 9c327af280
GPUDevice: Typedef auto-recycled texture 2 years ago
Stenzek c9c4307871
FileSystem: Android build fix 2 years ago
Stenzek aafc029682
Misc: Un-namespace Timer 2 years ago
Stenzek 7eb1d4e092
GPUDevice: Support compressed textures 2 years ago
Stenzek 24dfd30839
Image: Refactor to a more generic class 2 years ago
Stenzek 3ff1b04576
GPUDevice: Support generating mipmaps 2 years ago
Stenzek e647192437
GPUDevice: Add compute shader support 2 years ago
Stenzek d5e2db0dee
Misc: Fix new clang-cl warnings 2 years ago
Stenzek eb46142ee7
GPUDevice: Extract swap chain to separate class 2 years ago
Stenzek 08fe20ad76
CMake: Add spirv-cross include path to util 2 years ago
Stenzek 3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2 years ago
Stenzek 96ece5de1c
SmallString: MSVC warning fix 2 years ago
Stenzek 350cf7ee32
GPUDevice: Use suffixed shaderc libname
Avoids conflicts with other installations of shaderc, e.g. the Vulkan
SDK, which might be in the user's LD_LIBRARY_PATH.
2 years ago
Stenzek d981dc7471
MetalDevice: Implement pipeline cache 2 years ago
Stenzek ad67ab7ec3
MetalDevice: Use TranspileAndCreateShaderFromSource() 2 years ago
Stenzek 4c31218d2b
GPUDevice: Add API version field
Also tie shader caches to API version and device LUID. That way we don't
have tons of cache files, and they're regenerated if the GPU/driver
changes.
2 years ago
Stenzek c42fb7c16e
GPUDevice: Support ingesting SPIR-V
Will be transpiled to HLSL -> DXBC for DirectX backends.
2 years ago
Stenzek 1c1b82ed66
GPUDevice: Purge threaded presentation
Worse frame pacing, and GPU thread (when I finish it) will give
significantly faster performance on mobile anyway.
2 years ago
Stenzek 4c59513c79
GPUDevice: Fix pipeline cache loading
(again)
2 years ago
Stenzek a53dc85035
GPUDevice: Fix initial pipeline cache not being created 2 years ago
Stenzek 7f4e5d55db
Misc: Update copyright headers 2 years ago
Stenzek 542ef3a6c0
GPUDevice: Warning fix 2 years ago
Stenzek 667d1bf7c8
GPUDevice: Use CompressHelpers
And compress the pipeline cache. Saves a fair bit of disk space.
2 years ago
Stenzek 79bb5f079c
GPUDevice: Fix SPIRV-Cross load error on Mac 2 years ago
Stenzek 5b590d434b
D3D11Device: Fix blend state not applying to MRTs 2 years ago
Stenzek 3a83c4265c
Misc: Fix a bunch of code analysis warnings
Some of which were even actual errors.
2 years ago
Stenzek b6b0997e70
Build: Favor git repositories over in-tree patches
Too messy.
2 years ago
Stenzek ba6b65401d
GPUDevice: Improve pipeline error reporting 2 years ago
Stenzek 4b61a3cbf3
Qt: Unrestrict resolution scale up to device limits 2 years ago
Stenzek 9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle 2 years ago
Stenzek 8c72fd57f1
GPUDevice: Disable SPIR-V optimization on GLSL output
SSO causes SPIRV-Cross to redeclare builtins, which we don't want
(breaks on Mesa).
2 years ago
Stenzek 6bfd862cb3
GPUDevice: Fix transpiled interface linking with OpenGL 2 years ago
Stenzek e9a47233f7
GPUDevice: Compile warning fix 2 years ago
Stenzek ef69c31e9f
GPUDevice: Support transpiling shaders at compile time
And use it for GLSL postprocessing shaders.
2 years ago
Stenzek 0f9a255093
System: Fallback to FIFO on AMD (no mailbox support) 2 years ago
Stenzek 42a5fe0a6e
GPU: Further improve vsync handling 2 years ago
Stenzek 4e922a34a7
Log: Simplify macros 2 years ago
Stenzek b6d019db66
Misc: Replace log printf calls with fmt 2 years ago
Stenzek 6cad97b404
GPUDevice: Make vsync actually tear-free
Apparently users prefer stutter over tearing...
2 years ago
Stenzek d9cc80c7f9
WindowInfo: Get refresh rate from monitor config
DwmGetCompositionTimingInfo() returns a noisy refresh rate, at least on
Win11 22H2.
2 years ago
Stenzek 8e3284d8c6
Vulkan: Simplify loader using DynamicLibrary 2 years ago
Stenzek b204fd6860
Qt: Fix Mac dylib not being included 2 years ago
Stenzek d056584173
Deps: Update shaderc to 2024.1 2 years ago
Stenzek 03f9708911
GPUDevice: Move SPIR-V compilation to base class 2 years ago
Stenzek ca3cfbaa99
Misc: Pass string_view by value 2 years ago
Stenzek 295081fe62
Misc: Replace offsetof with constexpr-friendly OFFSETOF
Fixes build with clang-18.
2 years ago
Stenzek 88270771da
System: Combine VRR and Optimal Frame Pacing
GSync/FreeSync display users should:
 - DISABLE VSync.
 - ENABLE Optimal Frame Pacing.
2 years ago
Stenzek 98241cb6ba
GPUDevice: Swap out glslang for shaderc 3 years ago
Stenzek 72ab669e70
GPUDevice: Add support for feedback loops 3 years ago
Stenzek 1ab7850ed0
GPU: Rewrite deinterlacing and add adaptive/blend modes 3 years ago
Stenzek a1d7d214cf
GPUDevice: Add support for VRR and relaxed vsync 3 years ago
Stenzek b8127facdc
GPUDevice: Memoize preferred renderer for auto 3 years ago
Stenzek 150ab8f4af
GPU: Add host/hardware stats 3 years ago
Stenzek f66866ed73
GPUDevice: Use Error class for initialization errors 3 years ago
Stenzek 6d07d70946
GPUDevice: Fix erratic texture pool recycling 3 years ago
Stenzek 62d2f12236
Settings: Expose exclusive fullscreen control 3 years ago
Stenzek 9ec3266f02
GPUDevice: Fix crash when using recycled targets 3 years ago
Stenzek dc5e4120cd
GPUDevice: Improve texture pooling 3 years ago
Stenzek e08f888e72
OpenGLDevice: Fix incorrect scissor rect 3 years ago
Stenzek 79c226efff
SmallString: fmt -> format, format -> sprintf 3 years ago
Stenzek 39913b2a39
GPUDevice: Fix incorrect positioning with PostFX and GL 3 years ago
Stenzek a907e1f550
GPUDevice: Pool textures 3 years ago
Stenzek 3b2c70cda5
GPUDevice: Get rid of framebuffer abstraction 3 years ago
Stenzek e382f2b64a
Settings: Add option to disable DSB/fbfetch 3 years ago
Stenzek ff17444074
GPU/HW: Add framebuffer fetch blending path 3 years ago
Stenzek 9517638bcb GPUDevice: Don't recreate device on SW switch in GLES: 3 years ago
Stenzek 7edb57ca15 Settings: Add Default renderer option 3 years ago
Stenzek 184b0a1a52 Misc: Swap most C format strings for fmt 3 years ago
Stenzek ac0601f408 Common: Drop String, add SmallString 3 years ago
Stenzek 68b59ee748 CMake: Swap USE_ and WITH_ for ENABLE_
Consistency.
3 years ago
Stenzek 80e3d29ab8 Misc: clang-cl warning clean-up 3 years ago
Stenzek e804b5e701 GPUDevice: Support geometry shaders 3 years ago
Stenzek 09e7a5843f GPU: Add scaling shader support
Currently only Bilinear (Sharp).
3 years ago
Stenzek 8db8baf33f GPUDevice: Move display logic to GPU 3 years ago
Stenzek 6c185ca17b GPUDevice: Remove mouse pointer position 3 years ago
Stenzek 259193a8e5 GPUDevice: Move software cursor to ImGuiManager 3 years ago
Stenzek edc61b0095 GPUDevice: Fix crash when saving state with display off 3 years ago
Stenzek dc9c99438b Misc: Post-refactor cleanups 3 years ago
Stenzek 7a1af36e8d GPUDevice: Fix incorrect suffix on D3D shader cache 3 years ago
Stenzek e3d9ba4c99 Rewrite host GPU abstraction
- Don't have to repeat the same thing for 4 renderers.
 - Add native Metal renderer.
3 years ago