Unknown W. Brackets
33abbca464
softgpu: Optimize out texture proj for UVs.
...
Seen in NFS Most Wanted 5-1-0.
2022-12-01 23:13:20 -08:00
Unknown W. Brackets
d7224a8401
GE Debugger: Cleanup logspam on game exit.
...
If you're stopped on a frame and quit, it was previously logging every
command as it exited, thinking it was waiting on each.
2022-12-01 23:12:14 -08:00
Unknown W. Brackets
c5a98e62dd
softgpu: Cull verts outside post-viewport Z.
...
Shouldn't have removed this before, points are still culled when depth
clamp is off and throughmode is off.
Fixes Crazy Taxi graphics glitches.
2022-12-01 21:57:48 -08:00
Henrik Rydgård
8a3e92aa38
Not pretty, but with this, you can switch MSAA level at runtime.
2022-12-01 23:41:31 +01:00
Unknown W. Brackets
a1f6a40d10
softgpu: Interpolate Z for 3D lines.
...
Important for Me & My Katamari, see #16131 .
2022-12-01 14:39:19 -08:00
Henrik Rydgård
7950a00c14
Headless buildfix. Crashfix in shader generator test.
2022-12-01 22:49:00 +01:00
Henrik Rydgård
b9ea8de135
Use raster copies to work around lack of working copy support in MSAA mode.
2022-12-01 22:49:00 +01:00
Henrik Rydgård
8208768c15
Add a pipeline flag for USES_DISCARD. Will be used for the MSAA quality setting.
2022-12-01 22:49:00 +01:00
Henrik Rydgård
e3679df6cf
Fix switching between MSAA levels
2022-12-01 22:49:00 +01:00
Henrik Rydgård
4dfce4f6bc
Basically working MSAA on desktop GPUs! Some glitches remain.
2022-12-01 22:49:00 +01:00
Henrik Rydgård
06af304c8d
Multisampling groundwork
2022-12-01 22:49:00 +01:00
Unknown W. Brackets
4866518b84
Merge pull request #16477 from hrydgard/invalidation-refactor
...
Add a flags parameter to InvalidateCachedState and rename it Invalidate.
2022-12-01 11:05:04 -08:00
Henrik Rydgård
331d024a8c
Add a flags parameter to InvalidateCachedState and rename it Invalidate.
...
Also rename the old InvalidationFlags enum to InvalidateCallbackFlags.
2022-12-01 19:15:38 +01:00
Lubos
2be8f46a0c
Merge branch 'master' into compat_openxr_fixes
2022-12-01 18:26:26 +01:00
Henrik Rydgård
e6f0f84a45
SSE optimize Float4ToUint8x4, some uses
2022-12-01 16:32:23 +01:00
Henrik Rydgård
d02f46cb27
Minor VertexReader optimizations
2022-12-01 16:00:47 +01:00
Henrik Rydgård
423fa6d848
Couple more FormatMemWriteTagAt
2022-12-01 16:00:47 +01:00
Henrik Rydgård
6560123257
Restore optimization of memory info strings, avoiding allocations
2022-12-01 15:39:45 +01:00
Henrik Rydgård
40ae99073b
Remove std::string from VulkanTexture
2022-12-01 12:17:03 +01:00
Unknown W. Brackets
5bc51cb01d
GE Debugger: Remove dup block transfer record.
...
We already record it as a block transfer, we don't need to also do it as a
memcpy.
2022-12-01 01:36:27 -08:00
Unknown W. Brackets
73489349cc
GPU: Oops, simplify an expression.
2022-12-01 01:34:48 -08:00
Unknown W. Brackets
cbe96d3774
GPU: Use common block transfer logic in all cases.
2022-12-01 01:34:16 -08:00
Unknown W. Brackets
3589c1e826
softgpu: Handle block transfer VRAM wrapping.
...
Note: mirrors still act as mirrors, swizzle and all.
2022-12-01 01:31:44 -08:00
Unknown W. Brackets
1c5f0d575c
softgpu: Improve meminfo detail on block transfer.
...
Gaps are useful to understand.
2022-12-01 01:31:44 -08:00
Unknown W. Brackets
68515aaee2
softgpu: Account for width!=stride in xfer checks.
2022-12-01 01:31:43 -08:00
Unknown W. Brackets
2adc18cfba
softgpu: Correct src/dst overlap in block transfer.
...
If dest is inside src, it seems to consistently copy in blocks of 64
bytes.
2022-12-01 01:31:43 -08:00
Henrik Rydgård
c3aaf5b184
Merge pull request #16472 from unknownbrackets/fetch-fix
...
GLES: Correct unit tests for framebuffer fetch
2022-12-01 10:16:45 +01:00
Henrik Rydgård
4b7084401d
Merge pull request #16470 from unknownbrackets/softgpu-inversion
...
softgpu: Correctly fix inversions, matching tests
2022-12-01 09:59:56 +01:00
Unknown W. Brackets
fc5dcd0c16
GLES: Correct unit tests for framebuffer fetch.
2022-12-01 00:59:22 -08:00
Unknown W. Brackets
d763dca024
GPU: Correct fetch assert.
2022-12-01 00:17:14 -08:00
Unknown W. Brackets
dc962094f8
softgpu: Correctly fix inversions, matching tests.
...
Inversions are allowed just fine, but if clipping results in coordinates
outside range, the triangle should be culled. Fixes more wanted
inversions.
2022-11-30 23:20:39 -08:00
Lubos
09d48075bc
Merge branch 'master' into compat_openxr_fixes
2022-11-30 22:00:33 +01:00
Henrik Rydgård
f4385e1bea
Merge pull request #16456 from hrydgard/soft-gpu-range-checks
...
SoftGPU: Range check block copies.
2022-11-30 14:56:15 +01:00
Henrik Rydgård
d72ad3b3f4
Fragment shader generator: Move the framebuffer fetch bit to the shader ID.
...
Will resolve a future issue in the multisampling PR, where the
GPU_USE_FRAMEBUFFER_FETCH flag changes at runtime if you switch between no AA and MSAA.
Just figured I'd get it in separately for safety.
2022-11-30 00:26:15 +01:00
Lubos
de78007e66
OpenXR - Enable HUD in a few more games
2022-11-29 22:17:12 +01:00
Lubos
812c7d13aa
OpenXR - HUD disappearing in Flatout fixed
2022-11-29 21:25:13 +01:00
Henrik Rydgård
390bf3e912
Fix Burnout Dominator lens flare on OpenGL ES
...
Not the prettiest solution, but works: Use R8_UNORM as a fallback
if R16_UNORM is not available.
2022-11-29 13:05:18 +01:00
Lubos
d466ae161a
OpenXR - HUD max scale fixed
2022-11-28 19:46:46 +01:00
Lubos
164c27f5ec
OpenXR - Screen stretching fixed
2022-11-28 19:25:13 +01:00
Henrik Rydgård
9bb0c91a75
Sneak in a minor software transform optimization
2022-11-28 11:10:50 +01:00
Henrik Rydgård
6c8ccc149e
Stop logspam from bad block transfer corners.
2022-11-28 10:46:45 +01:00
Henrik Rydgård
3246baec4b
SoftGPU: Range check block copies.
...
Needs testing to verify if we should copy zeroes instead if the src range is
partial, etc, quite a few possible edge cases.
Though on its own, this probably fixes the crash in #16427 .
Still don't understand why that one has issues in hardware renderers
though since they do bounds-check the copies.
2022-11-28 10:39:46 +01:00
Henrik Rydgård
ed151473c2
Merge pull request #16454 from unknownbrackets/fb-depal-fb
...
GPU: Support framebuf depal from rendered CLUT
2022-11-28 09:47:22 +01:00
Henrik Rydgård
06b7fb9a6a
Merge pull request #16452 from unknownbrackets/gedebugger
...
GE Debugger: Correct LastVRAM mirror wrap around
2022-11-28 08:02:09 +01:00
Unknown W. Brackets
9425d0670a
GPU: Prevent decimating CLUT framebuffers.
...
Fixes color changing after a few moments in Kurohyo.
2022-11-27 21:24:02 -08:00
Unknown W. Brackets
a7c4258e9f
GPU: Support framebuf depal from rendered CLUT.
...
Using a temporary always for simplicity.
2022-11-27 21:16:24 -08:00
Unknown W. Brackets
194c4b0286
TexCache: Support offset in rendered CLUTs.
...
We already copy to a temp, so just use that copy to normalize out the
offset. Should even get RECT2LIN correct, but most cases are 1 pixel high
anyway.
2022-11-27 21:15:15 -08:00
Unknown W. Brackets
a6bc9acf16
GE Debugger: Correct LastVRAM mirror wrap around.
...
Oops, this fixes crashes when textures are used near the edge of VRAM.
2022-11-27 19:59:57 -08:00
Henrik Rydgård
72029b678a
Empirical attempt at fixing #15661
...
Basically, software culling fails in some configuration, like the one we
end up with on Mali.
As noted by unknownbrackets in #15661 , the viewport Z scale, offset is -0.0, 0.0.
We end up with CalcCullParams computing minZValue == maxZValue == 1.0f,
and with the vertices ending up with z,w == 1.0, 1.0.
and as a result, the inside/outside calculations will always decide that
it's outside.
Changing the comparisons from >= / <= to > / < fixes the problem, but I
don't know if this might break something else.
Anyhow, here's the simple way to repro on PC:
Change the ending of GPU_Vulkan::CheckFeatures to:
```c
return GPU_USE_LIGHT_UBERSHADER | GPU_USE_BLEND_MINMAX | GPU_USE_TEXTURE_NPOT | GPU_USE_INSTANCE_RENDERING |
GPU_USE_VERTEX_TEXTURE_FETCH | GPU_USE_TEXTURE_FLOAT | GPU_USE_16BIT_FORMATS | GPU_USE_TEXTURE_LOD_CONTROL |
GPU_USE_DEPTH_TEXTURE | GPU_USE_ACCURATE_DEPTH;
```
2022-11-27 23:16:16 +01:00
Henrik Rydgård
200e2f26c4
OffsetY fix for non-vulkan backends
2022-11-27 22:58:49 +01:00