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 and GitHub
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 and GitHub
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 and GitHub
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 and GitHub
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 and GitHub
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
Henrik Rydgård
d667bd84a3
Add back the old stretch-if-close-to-16:9 hack
2022-11-27 16:16:18 +01:00
Henrik Rydgård
bdfde4cbac
Implement the new screen sizing parameters
2022-11-27 16:16:04 +01:00
Henrik Rydgård and GitHub
e4998ade6f
Merge pull request #16442 from unknownbrackets/vulkan-geometry-safety
...
Vulkan: Only use geometry shaders with accurate depth
2022-11-27 09:02:57 +01:00
Unknown W. Brackets
1d00824528
Vulkan: Only use geometry shaders with accurate z.
...
Just to be safe, since that's what it's most well tested with.
2022-11-26 23:28:57 -08:00
Unknown W. Brackets
909f3feaea
softgpu: Allow inversions when w >= -1.0.
...
This seems to match desired cases well, see #16131 . Likely still
inaccurate to what hardware actually does.
2022-11-26 12:11:56 -08:00
Henrik Rydgård
0b375bb357
Colin McRae: Use compat flag to avoid GPU readbacks for VRAM->VRAM copies.
...
Improves performance when the sun is visible, see #7810
2022-11-26 18:53:13 +01:00
Henrik Rydgård and GitHub
9c033fb57c
Merge pull request #16437 from lvonasek/feature_openxr_hud_improvement
...
OpenXR - HUD improvements
2022-11-25 21:21:57 +01:00
Lubos
aa66b93124
MOve VR heuristics into a standalone method
2022-11-25 16:05:30 +01:00
Lubos
b2d809f4cd
typos fixed
2022-11-25 15:58:51 +01:00
Lubos
1ef036d07c
OpenXR - Farplane distance limit adjusted
2022-11-25 13:33:53 +01:00
Lubos
390ee28cd9
OpenXR - HUD fixes
2022-11-25 12:01:51 +01:00
Lubos
0b089dd1e5
OpenXR - HUD support improved
2022-11-25 11:08:49 +01:00
Henrik Rydgård and GitHub
d97035fffc
Merge pull request #16434 from unknownbrackets/stencil-opt
...
Vulkan: Use stencil export when available
2022-11-25 10:06:41 +01:00
Lubos
3aae47c331
OpenXR - Add a TODO for follow-up PR
2022-11-25 09:31:44 +01:00
Lubos
08432dd4e1
OpenXR - Camera controls adjust HUD instead of FOV
2022-11-25 09:25:23 +01:00
Lubos
a58ea86318
OpenXR - HUD scale option added
2022-11-25 09:18:16 +01:00
Lubos
5417e828de
OpenXR - Do not rescale the postprocess effects
2022-11-25 09:05:48 +01:00