Lubos
6e10f20f8b
OpenXR - Tony Hawk mirroring hack better
2023-07-02 20:29:59 +02:00
Lubos
843b169fa3
OpenXR - Digimon Adventure rendering fixed
2023-07-02 15:05:29 +02:00
Unknown W. Brackets
9c08e27a0c
Merge pull request #17648 from fp64/div-less
...
Replace some signed divison in SoftGPU
2023-07-01 12:28:52 -07:00
fp64
cd9f01c4df
Remove SSE4 path from Vec4<int>::operator*
2023-06-30 22:07:26 -04:00
Henrik Rydgård
eb21a2e6c9
Break out the OSD data holder from Common/System/System.h, into OSD.cpp/h
2023-06-30 17:15:49 +02:00
fp64
f133739cd0
Replace some signed divison in SoftGPU
...
This also adds a few bitwise operations to Vec4<int> and further
SIMDifies it.
Also, fixes unrelated warning.
2023-06-29 16:43:21 -04:00
Unknown W. Brackets
dfe113e846
Merge pull request #17634 from fp64/macro-x86-loadu
...
Streamline x86 SSE workaround
2023-06-27 23:01:41 -07:00
Henrik Rydgård
e4229886b7
Merge pull request #17636 from lvonasek/review_openxr
...
OpenXR - Major review
2023-06-27 20:07:42 +02:00
Lubos
880168ee3c
OpenXR - Fix render glitches caused by wrong mirroring
2023-06-27 18:54:38 +02:00
M4xw
99ce3125df
[Softgpu] Fix AArch64 oversight
2023-06-27 17:20:11 +02:00
fp64
436b49c4f2
Streamline x86 SSE workaround
...
Seems clearer than using #ifdef's at each site. Also rationale
is clearly spelled out, one 'Go to definition' away from any instance.
2023-06-27 00:30:01 -04:00
Unknown W. Brackets
fedb92b0e9
softgpu: Ensure early depth test uses SIMD.
2023-06-25 10:18:21 -07:00
Henrik Rydgård
08d578dce9
Merge pull request #17618 from unknownbrackets/softgpu-opt-cast
...
Optimize casts in softgpu
2023-06-25 07:55:30 +02:00
Henrik Rydgård
ec92675c5e
Merge pull request #17619 from unknownbrackets/softgpu-opt-z
...
softgpu: Improve Z interpolation SIMD
2023-06-25 07:55:03 +02:00
Unknown W. Brackets
d42642edd2
softgpu: Improve Z interpolation SIMD.
2023-06-24 22:17:11 -07:00
Unknown W. Brackets
15b66ba6c0
softgpu: Make SIMD on x86_32 a bit safer.
2023-06-24 14:49:23 -07:00
Unknown W. Brackets
ae9d34370e
softgpu: Move wsum_recip out of the triangle loop.
...
Seems like a small benefit, but not seeing any issues from this.
Noticed by fp64.
2023-06-24 12:38:05 -07:00
Unknown W. Brackets
795de9b164
softgpu: Use SIMD for more Vec4 casts.
...
A number of these were falling back to some pretty terrible code.
Thanks to fp64 for noticing.
2023-06-24 12:36:44 -07:00
Unknown W. Brackets
76990aec70
Merge pull request #17609 from fp64/optimize-softgpu-tex-linear
...
softgpu: Optimize (bi-)linear texture filtering
2023-06-21 23:39:15 -07:00
fp64
159faaa2ec
softgpu: Optimize (bi-)linear texture filtering
...
Seeing as SampleLinearLevel is near the top in the profiler,
optimize actual bilinear filtering using SSE2. Solid win in the
synthetic benchmark (https://godbolt.org/z/fqh3xvbGx , also doubles
as correctness check), no visible difference in actual PPSSPP.
Note: profiler suggests that hot part of SampleLinearLevel is
elsewhere.
2023-06-21 20:02:34 +03:00
Henrik Rydgård
7cc8c6cea4
OSD: Add semantics, move the the OSD state to common (while keeping the renderer in the UI).
2023-06-20 14:40:46 +02:00
Unknown W. Brackets
efd8565ffe
Merge pull request #17592 from fp64/anymask-movemask
...
Use _mm_movemask_ps for AnyMask
2023-06-17 09:48:09 -07:00
fp64
ab85c46161
Use _mm_movemask_ps for AnyMask
...
Probably very minor speed improvement, but it's rather neat.
2023-06-17 01:05:02 -04:00
Henrik Rydgård
5b4fa06b00
Revert Dot33 on 32-bit x86 only. See #17584
2023-06-16 23:43:33 +02:00
Henrik Rydgård
6d4e5a0f3e
Merge pull request #17584 from fp64/sse2-dot33
...
Convert Dot33 to SSE2
2023-06-15 20:08:23 +02:00
Henrik Rydgård
def09bf575
Update the uvscale uniform a bit more conservatively on framebuffer changes
...
Plus fixes a few minor oversights
Fixes #17581 and possibly #17522
2023-06-15 11:57:30 +02:00
fp64
f0d844a5a3
Convert Dot33 to SSE2
...
Simpler, lower requirements, and doesn't seem to hurt speed. See #17571 .
2023-06-14 22:02:50 -04:00
Henrik Rydgård
6d8069dfd1
Vulkan: Remove the remains of the input attachment experiment
...
Haven't been using these for a while.
I've come to the conclusion here that I think it's better to try to
deal with the issues using safe workarounds like copies, instead of
relying on features with somewhat iffy driver support that are not
universal across APIs anyway.
2023-06-13 20:46:27 +02:00
Henrik Rydgård
df7bd89b7d
Division->shift. since it's a signed integer, gets rid of a cdq instruction.
2023-06-13 11:57:28 +02:00
Henrik Rydgård
0eb3702ecb
Then add the early-outs for NEON too.
2023-06-13 11:48:04 +02:00
Henrik Rydgård
9647872a09
Same for NEON, first the refactor...
2023-06-13 11:48:04 +02:00
Henrik Rydgård
77da36c03f
SSE addstrip: Add the early-outs.
2023-06-13 11:47:53 +02:00
Henrik Rydgård
39034586a4
SSE: Refactor AddStrip to prepare for early out
2023-06-13 11:45:59 +02:00
Henrik Rydgård
22632b82bd
Merge pull request #17565 from hrydgard/breakout-vcache-vulkan
...
Vulkan: Breakout the vertex cache logic from DoFlush()
2023-06-13 09:56:52 +02:00
Henrik Rydgård
963ca50ba7
Merge pull request #17567 from hrydgard/uvscale-as-argument
...
Pass uvScale in as a fourth argument to the vertex decoder
2023-06-13 09:49:31 +02:00
Henrik Rydgård
71a34d4ffc
Merge pull request #17569 from hrydgard/arm64dec-optimize-saved-regs
...
ARM64: Optimize saved registers in vertex decoder.
2023-06-13 09:49:08 +02:00
Unknown W. Brackets
a7fa37d114
softgpu: Use SIMD more for dot products.
2023-06-12 19:54:32 -07:00
Henrik Rydgård
cdcf3b272e
ARM64: Optimize saved registers in vertex decoder.
...
Simplify away some arrays with unused elements
2023-06-13 00:26:38 +02:00
Henrik Rydgård
4af6fac726
Nop-align the ARM and ARM64 loops too. Many CPUs benefit somewhat from hot loops being 16-byte aligned.
2023-06-13 00:05:48 +02:00
Henrik Rydgård
5ae9c9c64e
Merge pull request #17568 from hrydgard/extract-some-changes
...
Extract some minor changes from #17497
2023-06-12 23:38:14 +02:00
Henrik Rydgård
c4e44d66b0
x86/x64: Nop-align the main loop of vertex decoder loops
2023-06-12 20:39:39 +02:00
Henrik Rydgård
01cea7f088
Pass uvScale in as an argument to the vertex decoder
...
Cleaner than overwriting/restoring gstate_c.uvScale in the decoder
loop. A small cleanup I've been wanting to do for ages.
Expecting a negligble perf boost if any.
2023-06-12 20:25:18 +02:00
Henrik Rydgård
880379c15d
Extract some minor changes from #17497
2023-06-12 20:20:06 +02:00
Henrik Rydgård
d957f6b0be
Of course got the check backwards
2023-06-12 19:45:34 +02:00
Henrik Rydgård
1a1462ecb0
x86 buildfix, warning fix
2023-06-12 17:46:57 +02:00
Henrik Rydgård
c9aa3479a4
Make vertexFullAlpha-in-register work the same as on ARM.
2023-06-12 16:08:14 +02:00
Henrik Rydgård
a164f77f47
VertexDecoderX86 (64-bit only): Avoid a memory access per loop iteration for alpha
2023-06-12 15:58:55 +02:00
Henrik Rydgård
f5516d3248
Actually switch away from XXH to a custom hash, to de-risk
2023-06-12 14:24:20 +02:00
Henrik Rydgård
2f90ec6093
Breakout the vertex caching (just code cleanup)
2023-06-12 13:16:14 +02:00
Henrik Rydgård
468757b93a
Add comment about possible UV scale/offset bug. Move loop-max to local.
2023-06-12 13:16:14 +02:00
Henrik Rydgård
d90671e877
Add some comments.
2023-06-12 13:16:13 +02:00
Henrik Rydgård
186b0f105c
Simplify the vertex cache ID handling
2023-06-12 13:16:13 +02:00
Henrik Rydgård
53aa2cc596
Apply stencil writemask when clearing properly again, see #17478
...
Also renames vpAndScissor to vpAndScissor_ for consistency.
2023-06-12 11:49:44 +02:00
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
f54f905be5
Vulkan: Remove support for other index types than 16-bit.
...
We don't have any use for them anyway.
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
5c94a20ecb
SoftGPU: implement CheckConfigChanged, have it check postshaders. Fixes #17511 .
2023-05-26 09:48:51 +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
72cf531759
Bump shader cache version
2023-05-25 10:19:01 +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
dfb446f89d
Allow other backends than Vulkan to have GPU memory stats. Implement for GL.
2023-05-24 14:33: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
84da0327d6
GLQueueRunner: Make DrawIndexed parameters more consistent.
2023-05-23 17:49:11 +02:00
Henrik Rydgård
f56ef63ef5
Remove redundant function
2023-05-23 16:50:25 +02:00
Henrik Rydgård
d51d1413a3
DrawEngineCommon: Rename decoded to decoded_
2023-05-23 16:46:43 +02:00
Henrik Rydgård
d7ea2ebf8a
GL: Add tags to push buffers for debug purposes. Double the default vertex buffer size.
2023-05-23 15:53:41 +02:00
Henrik Rydgård
cb38c43d7e
GL render manager: Merge the two stencil commands, for more compact command lists
2023-05-23 09:14:23 +02:00
Henrik Rydgård
470ebbfe73
GL: When setting a stencil value for clear, override both func and op for consistency.
2023-05-23 09:14:23 +02:00
Henrik Rydgård
a4baed4c0c
Minor GLPushBuffer cleanup (now same API as the VK one)
2023-05-23 08:41:09 +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
b27c427547
We always bind and draw together, so let's combine them to one command.
2023-05-10 10:56:25 +02:00
Henrik Rydgård
8f2069ef71
GLQueueRunner: Combine BindVertexBuffer with BindIndexBuffer
2023-05-10 09:23:10 +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
14887d6b04
Bump shader cache version (should have done it in the release)
2023-05-06 16:15:32 +02:00
Henrik Rydgård
ff72203a06
Remove now-redundant check, add a TODO
2023-05-05 23:46:19 +02:00
Henrik Rydgård
640c4fe9e1
GPU: Remove JumpFast/CallFast. They only avoid a very quick check and not worth the unsafety.
2023-05-05 23:44:19 +02:00
Henrik Rydgård
7ddcf62955
Change TODO to a better idea
2023-05-04 09:00:48 +02:00
Henrik Rydgård
d56e27aa2c
Let's have DispatchFlush check for drawcalls before calling DoFlush, too.
2023-05-03 23:49:41 +02:00
Henrik Rydgård
c80671d9ea
Debug-assert that there's a renderpass in Flush instead of asserting, and skip if not.
...
buildfix
2023-05-03 23:49:38 +02:00
Henrik Rydgård
c9b7c815a1
~GPU_Vulkan: Check that we still have a draw_ pointer before trying to drain the compile queue.
2023-05-03 22:33:34 +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
214d1d296a
Add a couple of TODOs for the future (not appropriate for current release process)
2023-05-03 22:15:22 +02:00
Henrik Rydgård
2cca0b265e
Vulkan: Turn off the ubershader on T880, T860 and T830 on old driver versions.
2023-05-03 11:53:32 +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
52b7bf502f
Merge pull request #17392 from hrydgard/misc-crash-fixes
...
Misc crash fixes from mystery thread
2023-05-02 23:41:32 +02:00
Henrik Rydgård
97488c0a79
Vulkan: Before cleaning the shader managers, drain the shader compile queue.
...
Mainly paranoia, but might help with the mutex crash from #17364
2023-05-02 22:05:28 +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
7c420381d5
OpenGL: Some paranoia checks around failed shader generation
2023-05-01 12:11:34 +02:00
Henrik Rydgård
d4249c1d73
OpenGL: Add an assert to catch a class of crash bugs early. Also assorted paranoia.
2023-05-01 11:56:26 +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
Unknown W. Brackets
0490ad0039
softgpu: Add NEON variants as well.
2023-04-16 13:09:56 -07:00
Unknown W. Brackets
860fc176d8
softgpu: Use more SSE in lighting.
2023-04-16 11:59:57 -07:00
Unknown W. Brackets
2868495cf8
softgpu: Use SSE for lighting ceil if available.
...
Tiny optimization, helps only a little.
2023-04-16 11:13:43 -07:00
Unknown W. Brackets
b5206df04f
softgpu: Calc worldnormal a bit less often.
...
This is clearer anyway.
2023-04-16 10:16:32 -07:00
Unknown W. Brackets
59fb374c38
softgpu: Small optimization to clut updates.
2023-04-16 10:16:06 -07: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
Henrik Rydgård
d26700820c
Minor buildfix/cleanup
2023-04-09 22:47:34 +02:00
Henrik Rydgård
d630d3c751
Presentation: Switch from indexed trilist to plain tristrip
...
Insignificant performance difference, but nice to get rid of the index
buffer.
2023-04-08 13:02:18 +02:00
Henrik Rydgård
ccab375ddb
Merge pull request #17246 from hrydgard/i18n-indexing
...
I18N: Switch to getting categories by index instead of by string lookup
2023-04-08 09:20:51 +02:00
Henrik Rydgård
3616e0fb3c
Revert "Turn off light ubershader generation on Broadcom GPUs."
...
See #16824
This reverts commit 1374fb040c
.
2023-04-07 16:43:50 +02:00
Henrik Rydgård
ee6234ecb6
I18N: Switch to getting categories by index instead of by string lookup
...
Also gets rid of the shared_ptr usage, and generally makes things nicer.
Needed for later config refactorings, good to get in early.
2023-04-07 10:35:01 +02:00
Lubos
cc1dd22e0f
OpenXR - Option to disable HUD detection added
2023-04-05 22:49:46 +02:00
Henrik Rydgård
cf28556d6d
When integer scaling, take the internal render resolution into account.
2023-04-05 09:48:28 +02:00
Henrik Rydgård
8f96ec371e
Rename iBufFilter -> iDisplayFilter
2023-04-05 09:34:18 +02:00
Henrik Rydgård
3a69569580
Don't use inaccurate depth with Vulkan on any GPU except some special-cased Mali drivers.
...
Fixes #17044
2023-04-03 22:36:13 +02:00
Henrik Rydgård
c08c711006
Fix portrait mode integer scaling
2023-04-02 22:35:51 +02:00
Henrik Rydgård
d223d3c316
Rename CenterDisplayOutputRect to CalculateDisplayOutputRect
2023-04-02 22:29:08 +02:00
Henrik Rydgård
2fa93982ea
Add support for integer scale factor for display
...
This is mainly useful if you want an authentic pixellated look with 1x
rendering (or software) and nearest display filter. It'll simply round
down the auto-scaled sized to the nearest integer scale factor,
configuring exactly which one isn't that interesting since they all are
gonna look good.
Fixes #17093
2023-04-02 22:29:08 +02:00
Henrik Rydgård
9f6338e098
Merge pull request #17222 from hrydgard/broadcom-disable-ubershader
...
Turn off light ubershader generation on Broadcom GPUs.
2023-04-02 18:32:10 +02:00
Henrik Rydgård
d996fb74d4
MSVC: Set language standard to c++17.
...
Noticed that we were getting some new warnings after merging the
constexpr stuff.
2023-04-02 17:55:15 +02:00
Henrik Rydgård
1374fb040c
Turn off light ubershader generation on Broadcom GPUs.
...
Attempt at working around #16824
2023-04-02 17:39:28 +02:00
Henrik Rydgård
3af961f3ba
Revert DrawPixel changes
2023-04-02 16:41:29 +02:00
Henrik Rydgård
fc62d587c0
Fix whitespace issues
2023-04-02 16:36:39 +02:00
Герман Семенов
122b63b9a8
GPU: using if constexpr
C++17 optimization
2023-04-02 16:36:37 +02:00
Henrik Rydgård
5e6d181eb6
Vulkan: Disable framebuffer fetch (through input attachments) for now.
...
This is a conceptually cool trick that just doesn't seem to be worth
it, compared to the old approach of copy + blend-in-shader. I haven't
found any game that benefits more than absolutely minimally, and having
two paths to test isn't great, when the win is so small.
So I'm disabling it. I'm keeping the code for now, but might clear it
out later.
Fixes #17069
2023-04-01 23:07:32 +02:00
Luboš Vonásek
de089c3fee
Merge branch 'hrydgard:master' into hotfix_openxr_glitches
2023-04-01 20:17:25 +02:00
Lubos
ee3e53581d
OpenXR - Camera lags fixed
2023-04-01 18:36:14 +02:00
Henrik Rydgård
81608b0505
Merge pull request #17214 from unknownbrackets/softgpu-alpha
...
softgpu: Fix over-optimization of alpha test
2023-04-01 10:24:22 +02:00
Unknown W. Brackets
a88b8a14f6
softgpu: Fix over-optimization of alpha test.
...
When alpha blend is off, was previously skipping the alpha test if only it
was enabled. See #17213 .
2023-03-31 23:53:37 -07:00
Unknown W. Brackets
2c5b0999e8
softgpu: Make debug-only optim more consistent.
...
Of course it doesn't matter when optimizations are enabled in any compiler
that can build PPSSPP...
2023-03-31 23:52:23 -07:00
Henrik Rydgård
5332850b00
More accurate check for LoadCLUT from framebuffer margins.
...
Fixes #16819
2023-03-31 21:24:21 +02:00
Henrik Rydgård
ba705dcabd
Fix typo
2023-03-28 15:44:35 +02:00
Henrik Rydgård
55e9d9a3eb
Code cleanup
2023-03-28 11:18:45 +02:00
Henrik Rydgård
cdfe4524ea
ReplacedTexture: Opportunistically delete the waitable
2023-03-28 09:21:41 +02:00
Henrik Rydgård
1fbabed7ff
Simplify the semantics, makes more sense now.
2023-03-27 22:09:10 +02:00
Henrik Rydgård
4e41233bb7
Replacement: Save textures even if already replaced, if the png is missing.
...
Fixes #17182
Not exactly sure what behavior we really want, but I think this one is
OK, and at least more similar to the old one. Now we save
already-replaced textures if the named replacement texture is missing, and there
isn't already a hash-named one in new or the "root".
2023-03-27 15:43:18 +02:00
Henrik Rydgård
acb61e4781
Merge pull request #17189 from unknownbrackets/minor-cleanup
...
Miscellaneous cleanup from recent changes
2023-03-26 09:44:29 +02:00
Henrik Rydgård
f3076294b2
Merge pull request #17192 from unknownbrackets/saveicon-download
...
GPU: Add xfer flag to ignore create vfb flags
2023-03-26 08:51:27 +02:00
Unknown W. Brackets
2d13b40123
GPU: Rename match flags to avoid confusion.
2023-03-25 23:25:42 -07:00
Unknown W. Brackets
05c225655d
GPU: Add xfer flag to ignore create vfb flags.
...
Save icons need CPU reads to work.
2023-03-25 23:19:21 -07:00
Unknown W. Brackets
5aeaeb83de
GPU: Fix intra-block transfers in ToP CE.
...
Used in Olive Village.
2023-03-25 23:06:44 -07:00
Unknown W. Brackets
f1834fcdde
Replacement: Correct padding w/ threads disabled.
2023-03-25 17:12:43 -07:00
Henrik Rydgård
b13c5c2d1b
Add compat setting to force using maximum depth resolution
...
Fixes #17014
Even if our depth-testing-equal heuristic believes that the game needs
lower depth resolution.
This removes some depth-fighting artifacts (that are present on the real
PSP, but nice to avoid) in Outrun, Split/Second and Cars: Race-o-Rama -
essentially reverting these to the behavior we had before the heuristic.
(The heuristic is good though - it means less compat.ini hacks going in
the other direction).
In the case of Outrun, this relies on two passes that pass exactly the
same vertex coordinates twice resulting in the exact same final
geometry. This is actually guaranteed by the spec if the vertex math is
exactly the same and "invariant" is set on the position output, though
I guess you never know.. Haven't seen any issues at least.
Also sneak in disabling some validation messages from using extra Vulkan
validation layers other than the default.
2023-03-26 00:27:58 +01:00
Henrik Rydgård
d586ec0d5e
Don't create Host objects except in headless/unittest
2023-03-25 10:47:01 +01:00
Henrik Rydgård
9e125eeba7
Remove NotifyUserMessage from Host
2023-03-25 10:32:09 +01:00
Henrik Rydgård
451ee14ebc
Don't forget to call CheckDepthUsage when using imm draws.
...
Fixes #17169
2023-03-23 17:14:12 +01:00
Henrik Rydgård
6950801e25
Not much point with a single line cleanup function. Also remove redundant check.
2023-03-19 00:04:48 +01:00
Henrik Rydgård
0580b09eeb
Improve default replacer ini. Various cleanup
2023-03-19 00:00:59 +01:00
Henrik Rydgård
baf8cbf278
Tweaks
2023-03-18 15:07:45 +01:00
Henrik Rydgård
f5e8d39e42
Force mipmapping on when drawing using replacement textures that contain mipmaps.
2023-03-18 15:01:53 +01:00
Henrik Rydgård
3302e6a76b
Lookup filtering overrides at texture load time instead of at runtime.
2023-03-18 13:03:05 +01:00
Henrik Rydgård
9a228b1f23
Avoid calling FindReplacement unnecessarily.
2023-03-18 12:03:32 +01:00
Henrik Rydgård
97c9b9e4f7
Break out PollReplacement from TextureCacheCommon::FindReplacement
2023-03-18 12:01:24 +01:00
Henrik Rydgård
75bcb9b10c
Some renaming, flag updates
2023-03-18 11:46:22 +01:00
Unknown W. Brackets
5b0748a61c
Merge pull request #17137 from hrydgard/log-fixes
...
Log fixes
2023-03-17 18:51:47 -07:00
Henrik Rydgård
5f76fbe1ad
Implement padding-on-copy for compressed textures as well.
2023-03-17 14:00:14 +01:00
Henrik Rydgård
79f4e73110
Replacer: Perform the padding to pow2 size during CopyLevelTo, not during load. Saves memory.
2023-03-17 14:00:14 +01:00
Henrik Rydgård
df41a5cebd
Improve default ini, logging fixes
2023-03-17 13:59:57 +01:00
Henrik Rydgård
1b0d5ec3aa
Remove a unused state from ReplacedTexture, rename POPULATED to UNLOADED
2023-03-17 00:52:38 +01:00
Henrik Rydgård
6a430f2a14
ReplacedTexture: Some initialization. For UASTC, seems we need to clear the transcoder state.
2023-03-17 00:02:01 +01:00
Henrik Rydgård
8484dd4917
Nicer logging if no texture.zip file is there
2023-03-16 22:59:26 +01:00
Henrik Rydgård
f154f4a29d
Warning fix
2023-03-16 15:06:38 +01:00
Henrik Rydgård
e34a5a68de
Remove some locking
2023-03-16 12:04:14 +01:00
Henrik Rydgård
725d4195df
Small cleanup of purging code
2023-03-16 11:53:39 +01:00
Henrik Rydgård
35f46ec161
Rework the replacement cache. No more duplicate ReplacedTexture objects.
2023-03-16 11:46:05 +01:00
Henrik Rydgård
cf6cce0744
Remove scaleFactor from struct ReplacedTextureDecodeInfo, instead pass in both unscaled and scaled dimensions
2023-03-16 10:21:57 +01:00
Henrik Rydgård
f2a5a5abe7
Avoid input/output arguments in the texture scaler too
2023-03-16 10:14:41 +01:00
Henrik Rydgård
c58ceb5160
Mini refactor: Separate input and output arguments for LookupHashRange
2023-03-16 09:55:49 +01:00
Henrik Rydgård
c45376ddc7
Typo fix, thanks iota97
2023-03-15 20:31:27 +01:00
Henrik Rydgård
0fb7ff488e
Add a convenient define to experiment with parallel copy
2023-03-15 14:48:32 +01:00
Henrik Rydgård
87a16b0386
Fix the stats
2023-03-15 10:19:00 +01:00
Henrik Rydgård
089b63c22f
Address feedback, except the stats.
2023-03-15 10:09:39 +01:00
Henrik Rydgård
2ac74e3d37
Remove the PushBufferType enum
2023-03-15 09:59:00 +01:00