Commit Graph
121 Commits
Author SHA1 Message Date
Henrik Rydgård d243737c11 Revert "Convert the pre-rotation to just the matrix multiplication."
After the previous commit, the optimization is no longer needed, and
unnecessarily bloats the uniform buffer.

This reverts commit 62bcb1785e809649ba88b49e24c5217f457fa040.
2026-05-17 11:02:35 +02:00
Henrik Rydgård 27650fe3e4 Fix race condition during Vulkan startup 2026-05-13 23:09:04 +02:00
Henrik Rydgård 28166cb35d Add "allocation slack" to our pushbuffers. Fixes a memory overwrite bug
Reported by Joseph on Discord.

Sometimes, things could align perfectly so allocations happend exactly
at the end of a pushbuffer. At the same time, we allow our vertex decoder to write an extra few
bytes if it needs to for speed. Unfortunately I missed this interaction,
resulting in some uncommon crashes that were especially common with
heavy-geometry things like modified GTA LCS with PS2 assets, for
example.

The problem was reported with Vulkan, but our OpenGL backend had the
same issue too.
2026-05-13 15:55:34 +02:00
Henrik Rydgård d108fe25d1 Rework constant buffer loading, barrier fix 2026-04-23 13:32:06 +02:00
Henrik Rydgård 4c2be7f8af More work. Some initialization order problem. 2026-04-23 13:31:51 +02:00
Henrik Rydgård 4335a327cd Hackery to prepare for constant buffers in compute 2026-04-23 13:31:51 +02:00
ZironZ 62bea77bd0 Add Vulkan multipass texture scaler infrastructure 2026-04-07 13:29:15 -04:00
Henrik Rydgård 7853881210 GPU header cleanup: Avoid including GPUCommon.h in some places 2025-11-23 20:37:37 +01:00
Henrik Rydgård 4c8aae50b2 Remove dead code, minor ge debugger change 2025-06-06 13:50:35 +02:00
Henrik Rydgård 27122a9e64 Work on previews 2024-12-10 22:09:51 +01:00
Henrik Rydgård 0df2a40487 Remove the "GPUInterface" base class. Not really useful, GPUCommon is pretty much the same thing. 2024-12-02 11:12:14 +01:00
Henrik Rydgård e4adc112ff ImDebugger: Add a basic texture browser 2024-11-29 19:30:38 +01:00
Herman Semenov b57dab2812 [GPU] Make static and const methods if possible 2024-04-05 17:04:31 +03:00
Herman Semenov 3d422b11c0 [GPU Common Vulkan/UI/Windows Debugger] Added const reference for function params 2023-12-14 14:23:31 +03:00
Henrik Rydgård 2ac14f555d Remove VulkanPushBuffer (keeping our newer replacement VulkanPushPool) 2023-10-11 09:06:24 +02:00
Henrik Rydgård 10f93875c6 Fix the semantics of DenseHashMap to be consistent even when inserting nulls 2023-09-11 12:07:18 +02:00
Henrik Rydgård effbe6376a Remove an unused VulkanPushBuffer.
Saves about 0.75MB of VRAM, but mainly just to clean things up.

I think I meant to use this one instead of grabbing the one from
DrawEngine in the TextureCache.
2023-03-14 23:39:47 +01:00
Henrik Rydgård 4c45f8a4b0 Pass in draw directly in GPUCommon::DeviceRestore, instead of awkwardly fetching it 2023-02-25 23:04:27 +01:00
Henrik Rydgård c74f5b2189 Prepare for unifying more stuff 2023-02-25 16:01:32 +01:00
Henrik Rydgård 1b5148bb6c Remove kinda-duplicate function. 2023-02-24 23:54:04 +01:00
Unknown W. Brackets f44852bb18 Global: Cleanup virtual/override specifiers.
Also missing virtual destructors, hidden non-overrides, etc.
2022-12-10 21:13:36 -08:00
Unknown W. Brackets 416265431b GE Debugger: Display if tex is framebuf.
Rather than guessing based on size, let's show explicitly.
2022-10-10 22:35:42 -07:00
Unknown W. Brackets c76d31dfa8 GPU: Cleanup unused CheckAlpha() funcs. 2022-09-24 02:00:03 -07:00
Henrik Rydgård abd58199ce Add way to bind cached textures to a DrawContext 2022-09-14 22:18:35 +02:00
Henrik Rydgård b529d26f3a Fix smoothed depal on GLES. Don't enable filtering if not using. 2022-08-24 13:43:41 +02:00
Henrik Rydgård 5084743bbb Use Draw2D for depal shaders (except the actual blit, for now) 2022-08-23 11:21:40 +02:00
Henrik Rydgård 82a6c42e17 DepalettizeCommon -> TextureShaderCommon. Simplifications. 2022-08-22 12:21:20 +02:00
Henrik Rydgård ded8ba8806 More cleanup, fixes. 2022-08-06 18:27:04 +02:00
Henrik Rydgård 4e3c258140 Delete all the duplicate implementations of ApplyTextureFramebuffer 2022-08-06 18:27:03 +02:00
Henrik Rydgård b5597d1013 Remove Vulkan2D 2022-08-06 18:27:03 +02:00
Henrik Rydgård 45def772ee Move the depal cache instance ownership to TextureCacheCommon 2022-08-06 18:27:03 +02:00
Henrik Rydgård 87b128ecaf Compiles on Vulkan, but doesn't yet work. 2022-08-06 18:27:03 +02:00
Henrik Rydgård e345a6ba3c Works with D3D11, except the depth texturing case 2022-08-06 18:27:03 +02:00
Henrik Rydgård 2fa9b0d0c7 Simplify 2022-08-06 18:27:03 +02:00
Henrik Rydgård 710c6b6ad1 Fix crash in shader upscaling. This variable shadowed the one that now lives in Common.
Fixes #15778
2022-08-02 08:33:50 +02:00
Henrik Rydgård 063cd18254 Simplify CPU upscaling code
Use the existing expandTo32bit mode in the texture decoder instead of
the backend-specific switches and stuff.

Just gets rid of a bunch of redundant code and makes further changes
easier.
2022-07-30 15:06:25 +02:00
Henrik Rydgård c4dfbf4f1a Delete a lot of specialized alpha checking code.
This was now only used to check alpha in CLUTs, and the generic functions will not actually be any slower.
2022-04-15 12:34:50 +02:00
Unknown W. Brackets 2479d52202 Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08:00
Henrik Rydgård c2f594cc73 Remove the VulkanDeviceAllocator 2021-11-22 18:54:09 +01:00
Unknown W. Brackets 8a5f07b860 Vulkan: Don't cache vulkan_ with draw context.
Since we can get the VulkanContext cheaply from the draw context, it's
easier to make sure things stay up to date.
2021-11-14 15:25:28 -08:00
Henrik Rydgård 6349704924 Switch texture scaling shaders to a fixed scale model, preparing for the next change. 2021-11-07 13:12:28 +01:00
Henrik Rydgård c111d6cc2d Remove the copy-compute-shader path 2021-11-07 12:55:39 +01:00
Unknown W. Brackets ae474f5f18 GPU: Correct some field shadowing. 2021-02-15 12:00:29 -08:00
Unknown W. Brackets c630d365cd Vulkan: Allow tex shaders to specify a max scale. 2021-01-28 01:03:02 -08:00
Henrik Rydgård 3c2733d8eb Adreno/OpenGL: Limit shader depal to 6xx series GPUs. Should help #13668.
Also make a function static.
2020-11-22 18:00:07 +01:00
Henrik Rydgård 886a8b1ac6 Remove Timer.cpp/h. Move various collections into Common/Data/Collections. 2020-10-05 21:05:23 +02:00
Henrik Rydgård 0e3a84b4a8 Move most GPU things to Common.
It works after the move, on Windows and Android at least.

Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00
Henrik Rydgård ea2d2ec434 Remove unused lastBoundTexture from Vulkan 2020-09-21 08:57:19 +02:00
Henrik Rydgård eaca9d1b59 Remove dirtying of TEXTURE_PARAMS from ForgetLastTexture, not its responsibility. 2020-09-21 08:56:58 +02:00
Henrik Rydgård 707e9cf7ac Remove some unnecessary function parameters, improve some comments. 2020-09-20 20:44:18 +02:00