Commit Graph
2741 Commits
Author SHA1 Message Date
Henrik Rydgård e9e95d23ce VulkanDebug log fix, reduce log spam 2023-05-30 18:32:33 +02:00
Henrik Rydgård 49ecc01556 Fix image leak bug when pausing and we're just displaying a framebuffer in memory 2023-05-30 18:29:50 +02:00
Henrik Rydgård 7c4b9bac90 Cache textures created by MakePixelsTexture and reuse where appropriate. 2023-05-30 14:07:44 +02:00
Henrik Rydgård ea552bc573 Add a new GPU stat (DrawPixels), kinda heavy since creates textures. GoW does 20-ish per frame. 2023-05-30 10:15:34 +02:00
Henrik Rydgård ad8827ae70 Cleanup, address feedback 2023-05-26 10:28:10 +02:00
Henrik Rydgård 6cee08c74f Post-processing: Fix using limited UV ranges when there's a single upscaling filter in the chain.
Fixes #17499
2023-05-26 09:48:51 +02:00
Henrik Rydgård 80e47b7bd3 Only dirty the uniform UVSCALEOFFSET when really needed
Broken out from #17479

With OpenGL, greatly reduces the amount of glUniform4fv calls in many games (and
similar in the other backends).
2023-05-25 15:00:57 +02:00
Henrik Rydgård 7178c0cd42 Restore fragmentshader ID flags double and texalpha. Add a ubershader mode that uses dynamic state. 2023-05-25 10:19:01 +02:00
Henrik Rydgård bb6d696a84 Merge the tex "ubershader" uniforms into one for convenience 2023-05-25 10:19:01 +02:00
Henrik Rydgård ebd36a4369 Reorganize the fragment shader bits 2023-05-25 10:19:01 +02:00
Henrik Rydgård f16f879b41 Some renaming to follow the standard of appending _ to member vars 2023-05-23 18:00:50 +02:00
Henrik Rydgård d51d1413a3 DrawEngineCommon: Rename decoded to decoded_ 2023-05-23 16:46:43 +02:00
Henrik Rydgård 67a35d3476 Merge pull request #17356 from unknownbrackets/minor-cleanup
Cleanup some more string formats, mostly in debugger
2023-05-23 08:29:23 +02:00
Henrik Rydgård 05b6bbdc56 Add a trivial profiling tool to the OpenGL backend - meaasure the time it takes to run a frame of commands.
Accessed from the in-game dev menu just like the Vulkan frame profiler.

With this we can easily see that actually submitting the GL commands is often the bottleneck on old
devices like a Galaxy S3.
2023-05-17 14:38:11 +02:00
Henrik Rydgård 9512bc6174 Don't cache render target copies for shader blending, only cache copies for overlap
Fixes #17451, while also keeping the Dante performance fix from #17032.

Of course, it's possible that something else could slow down now... But
hopefully not. This could also fix other problems.
2023-05-11 12:04:29 +02:00
Henrik Rydgård fd43807c4d New fragment shader optimization: Only clamp color output if needed. 2023-05-09 18:44:24 +02:00
Henrik Rydgård b42670cf59 Manually revert the rest of the lmode optimization 2023-05-09 18:44:24 +02:00
Henrik Rydgård 0babac5c5f Manually revert "Remove LM flag from vshader too" (#16718)
Reverts #16718

Though maybe we can keep this one? Let's see.
2023-05-09 18:44:18 +02:00
Henrik Rydgård f42c682d34 Revert "Merge pull request #16628 from hrydgard/remove-fog-fshader-flag"
This reverts commit 10dee90c83, reversing
changes made to 34c11c8acf.
2023-05-08 22:01:38 +02:00
Henrik Rydgård 0e2fb13c61 Make sure we never end up with a null vertex decoder. 2023-05-03 22:22:54 +02:00
Henrik Rydgård cee9d2bdd2 Delete outdated lines 2023-05-03 08:35:07 +02:00
Henrik Rydgård c476d986f7 Bump the index/vertex cpu-side buffer sizes a little. Replaces #17387 2023-05-03 00:24:43 +02:00
Henrik Rydgård dc96374eb2 Merge pull request #17380 from hrydgard/replacement-find-files
Pre-scan the root of texture packs for hash-named files.
2023-05-02 21:40:05 +02:00
Henrik Rydgård ee7e8d7c06 Add a unit test, fix listing zip directories 2023-05-02 11:35:45 +02:00
Unknown W. Brackets bd37e98299 Merge pull request #17382 from hrydgard/avoid-double-texreplace-load
Avoid double texture cache load.
2023-05-01 22:14:20 -07:00
Henrik Rydgård bdd0eeb7c3 Avoid double texture cache load.
Texture packs are loaded from NotifyConfigChanged which is called
anyway.

Fixes #17381
2023-05-01 23:52:39 +02:00
Henrik Rydgård d10fae7274 Scan the root of loaded texture packs to find all the hash-named files. 2023-05-01 23:23:37 +02:00
Henrik Rydgård 2e3a676d71 Support BC1,2,3 formats also if packed in a DX10-style DDS. 2023-05-01 20:55:31 +02:00
Henrik Rydgård 02880d7d7d Less broken behavior with integer scale factor + auto render resolution
Unfortunately these don't make the same decision (integer scale factor
tries to make sure the whole image can fit in the window, while auto
render resolution is glad to step up a level), but at least the user is
not faces with a black screen.

Not sure what's actually the best thing here, possibly this case should
be disallowed somehow.
2023-04-30 10:18:47 +02:00
Unknown W. Brackets 2f3a0ea0b5 Debugger: Simplify expression error handling. 2023-04-29 09:15:14 -07:00
Henrik Rydgård 6945deec01 Replace a LOT of sprintf with snprintf, and a few strcpy with truncate_cpy 2023-04-28 21:04:05 +02:00
Henrik Rydgård 68be93467e Fix some checks around translation. 2023-04-27 12:05:11 +02:00
Henrik Rydgård 6274eb7cae Follow the intent of the game's lookups rather than the practice, to reduce banding. 2023-04-25 23:17:40 +02:00
Henrik Rydgård 484f2c5954 Fix texcoord issue with SOCOM post effect 2023-04-25 23:02:12 +02:00
Henrik Rydgård 16b243b007 Centralize allocation of vertex decode buffers 2023-04-24 12:11:58 +02:00
Henrik Rydgård 321a112eff Rename SimpleBuf -> AlignedVector, use regular aligned memory instead of pages. 2023-04-24 12:04:34 +02:00
Henrik Rydgård ef5abac1d3 Fix an oversight when saving replacement textures on scoped storage
We ended up not properly mangling the filename when changing extensions
if the file URI is an Android content URI.

Fixes #17320
2023-04-22 00:05:07 +02:00
Henrik Rydgård c70b71f945 Fix night vision in D3D9/ES2 as well. 2023-04-21 00:05:27 +02:00
Henrik Rydgård 913c460fe0 Fix night vision in SOCOM games (in fact, fix the CLUT8 effect properly)
I failed to notice that when doing the shift to apply the "texel offset"
translating CLUT8 to a CLUT16 lookup, we also need to shift the mask
used to choose color components to read.
2023-04-20 23:46:45 +02:00
Henrik Rydgård db13fa6e66 Apply the SOCOM fix to D3D9/ES2 depal shaders too 2023-04-20 10:10:26 +02:00
Unknown W. Brackets b4d55713cb GPU: Always update size when shrinking.
Previously, we only updated size when we didn't need to recreate.
This would sometimes cause it to recreate over and over, hurting perf.
2023-04-19 23:42:02 -07:00
Henrik Rydgård a20c620e16 Merge pull request #17297 from hrydgard/socom-clut-trickery
Workaround for some SOCOM games' misuse of CLUT8 to texture from framebuffer
2023-04-18 10:11:20 +02:00
Henrik Rydgård b1f8830bd8 Don't try to present from little temp framebuffers used by Godfather to draw text.
The framebuffer does contain the top of the video frame at the present
time though, so things have partially gone well. However the rest of the
frame lies after it in VRAM. What we probably technically should do when
we see this is to assemble an image from both the framebuffer we find
and VRAM contents exceeding the range of that image, but seems kinda
impractical.

This works, but there seems to be some other issue with how the text is
rendered or copied. Could be a color precision issue confusing the game
I suppose.
2023-04-17 12:24:31 +02:00
Henrik Rydgård 9a3ff69091 Workaround for some SOCOM game's misuse of CLUT8 textures.
Emulating this correctly would be possible too but would only work at 1x
rendering resolution.
2023-04-17 09:34:26 +02:00
Henrik Rydgård b90833a462 OpenGL texture filtering: enforce key.mipEnable when we're forcing mips.
Fixes #17268, but I feel we could possibly get rid of the bool entirely
since we have maxlevel. Only GL and D3D even looks at this flag.

Oh well, that's for later.
2023-04-14 14:36:07 +02:00
Henrik Rydgård 178fe27263 Merge pull request #17269 from unknownbrackets/debugger-minor
Debugger: Avoid unaligned reads in expressions
2023-04-12 10:38:08 +02:00
Unknown W. Brackets 9cebfc31b3 Debugger: Avoid unaligned reads in expressions.
Potentially, a watch or break condition could crash if it was unaligned
between mirrors.  This might happen if it's not the condition you wanted,
especially.  Play it safe.
2023-04-12 01:14:30 -07:00
Henrik Rydgård 88899984e3 Correctly pass un-rotated width/height to presentation pipeline. 2023-04-11 22:27:26 +02:00
Henrik Rydgård 652612cf15 Fix issue in present where we applied the UV range at the wrong place when post-processing.
Fixes #17249
2023-04-11 22:27:26 +02:00
Henrik Rydgård 4f6e5e73a6 PresentationCommon: Simplify Y flip handling.
Don't manipulate the UVs, manipulate the vertex coordinates instead.

This will simplify the next change that will fix the pixel accuracy
problems in post-processing.
2023-04-10 21:58:34 +02:00