Commit Graph

8203 Commits

Author SHA1 Message Date
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
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
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
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
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
Unknown W. Brackets
b33662550f Vulkan: Use stencil export when available.
This prevents multiple passes to upload stencil buffers.
2022-11-24 18:48:46 -08:00
Unknown W. Brackets
d243d45741 GPU: Upload stencil to latest buffer.
Just being safe.
2022-11-24 16:33:31 -08:00
Lubos
0e2fd7c2a2 OpenXR - Fix HUD in many games which breaks postprocess effects 2022-11-24 19:17:00 +01:00
Henrik Rydgård
3dd45c6561 Can't forget the texture in the callback, breaks texture-from-framebuffer-copy.
Was probably redundant anyway.
2022-11-24 11:02:21 +01:00
Henrik Rydgård
70d1d8fa07 Replace the "GetCurrentStepId"-based state invalidation with callbacks 2022-11-24 10:52:42 +01:00
Henrik Rydgård
cb7329cd11
Merge pull request #16426 from hrydgard/loadclut-fix
Rebind framebuffer after LoadCLUT-from-framebuffer
2022-11-24 10:48:26 +01:00
Henrik Rydgård
7b154d6895 Don't forget to rebind the framebuffer after copying a framebuffer to CLUT. 2022-11-24 10:12:12 +01:00
Henrik Rydgård
9bc0d662c9 Add more affected games to compat setting. Reorder checks, and check vendor flag. 2022-11-24 10:09:47 +01:00
Henrik Rydgård
39f2ddd128 Add compat flag / bug check for games on old Adreno/GL affected by #16015
See #16015

Partly derived from https://github.com/hrydgard/ppsspp/compare/master...unknownbrackets:ppsspp:adreno-deadlock

But this one surgically activates it only for the known affected games, to avoid any additional
performance regressions in the release.

Entirely untested.
2022-11-24 10:05:35 +01:00
Henrik Rydgård
f6fcc9e9a7 Add a way to view the "GPU_USE_" flags at runtime. Useful for sanity checking on-device. 2022-11-23 16:17:41 +01:00
Henrik Rydgård
7eee7f2573 Fix shader debug description issue. 2022-11-23 15:41:20 +01:00
Henrik Rydgård
75dc856e2c Test fix 2022-11-23 08:52:46 +01:00
Henrik Rydgård
6d9bb1b29e Move post-processing settings to DisplayLayoutScreen 2022-11-22 23:29:50 +01:00
Lubos
70d30d1cf6 OpenXR - Aspect ratio of menu background fixed 2022-11-22 21:49:52 +01:00
Henrik Rydgård
5c2663e37c
Merge pull request #16413 from unknownbrackets/heap-partition
Kernel: Respect partition param in heap funcs
2022-11-22 10:18:47 +01:00
Henrik Rydgård
ddd2c6e343
Merge pull request #16409 from hrydgard/preserve-framebuffers
Preserve framebuffer on pause screen even if render resolution is changed
2022-11-22 10:03:47 +01:00
Unknown W. Brackets
2f4e0e7d50 D3D11: Remove unused hack USE flag.
Only GLES uses this now, we always have accurate depth here.
2022-11-22 00:12:32 -08:00
Henrik Rydgård
8f103f3f47 Extract the Vulkan descriptor binding cleanup from #16345 2022-11-21 20:30:20 +01:00
Henrik Rydgård
fe1446bf92 Test crashfix 2022-11-21 19:57:59 +01:00
Henrik Rydgård
cbfa4bfc8e Centralize ClearCacheNextFrame 2022-11-21 18:13:13 +01:00
Henrik Rydgård
c3604428b9 Only check for display resized in emuscreen-under-pause-screen, not the other changes. 2022-11-21 17:59:56 +01:00
Henrik Rydgård
ce5a1b8b7e Some minor "centralization" 2022-11-21 17:55:30 +01:00
Henrik Rydgård
d73196c7d6 Split up the GPU config change notifications 2022-11-21 15:14:20 +01:00
Henrik Rydgård
eff4118769 One more refactoring step 2022-11-21 14:54:48 +01:00
Henrik Rydgård
7596713059 Refactor: Split up updating the display and render size. 2022-11-21 14:35:12 +01:00
Henrik Rydgård
f67ef7ab99
Merge pull request #16404 from hrydgard/transparent-pause-screen
Make the pause screen "transparent"
2022-11-21 14:27:59 +01:00
Henrik Rydgård
fd110ef6a9
Merge pull request #16408 from unknownbrackets/jit-wx
softgpu: Fix compile hazard while running
2022-11-20 21:42:10 +01:00
Unknown W. Brackets
4d06400548 softgpu: Fix compile hazard while running.
This prevents any clearing of cache while other threads may be using
previously cached funcs, and avoids wx exclusive hazards.
2022-11-20 12:04:02 -08:00
Henrik Rydgård
250ea5e592
Merge pull request #16407 from unknownbrackets/jit-wx
In jits, protect and unprotect using better estimates
2022-11-20 20:39:04 +01:00
Unknown W. Brackets
ce51942508 softgpu: Correct WX-exclusive platform hazards.
Should mainly affect BSD at this point.
2022-11-20 10:55:35 -08:00
Unknown W. Brackets
b2798c7ada jit: Add more reasonable estimates for RX protect. 2022-11-20 10:55:35 -08:00
Henrik Rydgård
8d96e777a1
Merge pull request #16401 from unknownbrackets/gedebugger-tex
GE Debugger: Correct texture address corruption in playback
2022-11-20 18:27:18 +01:00
Henrik Rydgård
37ec31dedd Fix resizing issue. Took some refactoring. 2022-11-20 12:57:32 +01:00
Henrik Rydgård
a3874ebcef
Merge pull request #16402 from unknownbrackets/softgpu-inversion
softgpu: Throw away all inverted polygons
2022-11-20 09:55:49 +01:00
Unknown W. Brackets
71b4407889 softgpu: Throw away all inverted polygons.
This is actually incorrect in some cases, but there are a number of games
affected by inversions, and they're practically always undesired.
2022-11-19 20:30:49 -08:00
Unknown W. Brackets
6c2001d12d GE Debugger: Correct texture address corruption.
Happened when playing back frame dumps that set bufw after specifying the
texture address, but before drawing.

Seen in Syphon Filter.
2022-11-19 14:59:52 -08:00
Henrik Rydgård
56a879bbd6
Merge pull request #16395 from unknownbrackets/blit-prefer-raster
GPU: Prefer raster for depth blit if supported
2022-11-18 16:50:35 +01:00
Unknown W. Brackets
47e5df3844 GPU: Prefer raster for depth blit if supported.
This seems to work around an apparent NVIDIA driver bug.
2022-11-17 18:32:38 -08:00
Lubos
db8b159d9e OpenXR - Force PSP menu aspect ratio 2022-11-17 17:30:29 +01:00
Unknown W. Brackets
7e7eabf86a softgpu: Use threads on self-render if safe.
Some games, such as Prince of Persia, self-render 1:1 to colorize, rather
than to scale or blur.  We can still use threads in these cases.
2022-11-13 12:34:31 -08:00
Unknown W. Brackets
d8716b5d90 softgpu: Fix off-by-one rendering after half-pixel.
If the X is after a half-pixel offset, the first pixel we draw is the next
one.  This wasn't being accounted for properly in one place.
2022-11-13 10:22:09 -08:00
Henrik Rydgård
fd43a0eade
Merge pull request #16384 from unknownbrackets/softgpu-fog
softgpu: Correct tex on fogged rectangles
2022-11-13 18:56:09 +01:00
Unknown W. Brackets
a66056217f softgpu: Avoid splitting rectangles for fog.
If the fog factor would result in the same amount of fog, we're just
adding more work for no reason.
2022-11-13 09:23:06 -08:00
Unknown W. Brackets
21064edfca softgpu: Correct tex on fogged rectangles. 2022-11-13 09:17:29 -08:00
Unknown W. Brackets
aac2faa674 GPU: Automatically reduce depth range on == test.
Fixes graphic issues in Blade Dancer, possibly other games.
2022-11-13 08:13:22 -08:00
Unknown W. Brackets
01d7d73438 GPU: Remove unused GPU_USE flag. 2022-11-13 08:09:57 -08:00
Unknown W. Brackets
4a367148e6 GPU: Centralize more GPU_USE flags, like depth. 2022-11-13 08:04:47 -08:00
Henrik Rydgård
1ae6047da9
Merge pull request #16379 from unknownbrackets/stencil-android
Fix alpha/stencil replace on Adreno when color masked
2022-11-13 10:12:39 +01:00
Unknown W. Brackets
eae85836c9 GPU: Add a small error-compensation to depth clip.
This was causing a depth that should've calculated as zero to be clipped,
because the multiply and division resulted in a value that was off by
about 2 / pow(2, 24) in the negative direction.
2022-11-12 20:01:46 -08:00
Unknown W. Brackets
66668d4b3f Vulkan: Correct alpha in Adreno workaround. 2022-11-12 17:41:48 -08:00
Unknown W. Brackets
98758573e3 GPU: Convert alphamask to FF/00 for 5551.
When masking via uniform, we don't care about the lower bits of alpha.
Games often use 7F / 80 to control writes of FF/00.
2022-11-12 17:41:48 -08:00
Lubos
72d197fc47 Revert "OpenXR - Disable range culling properly"
This reverts commit d1dabd40ee.
2022-11-10 18:44:11 +01:00
Unknown W. Brackets
70c3205564 GPU: Correct equal depth checks. 2022-11-09 20:34:29 -08:00
Henrik Rydgård
2886c33c06
Merge pull request #16370 from lvonasek/compat_openxr_sonic
OpenXR - Sonic Rivals fixed
2022-11-09 21:28:34 +01:00
Lubos
b980f55645 OpenXR - Don't get mirroring from identity matrix 2022-11-09 19:07:45 +01:00
Unknown W. Brackets
1c0a37f252 GPU: Correct vertex decoder in software transform.
It was meant to flip to skin in decode.
2022-11-09 07:07:39 -08:00
Henrik Rydgård
a8537576e5
Merge pull request #16361 from unknownbrackets/depth-equal
GPU: Avoid clears for non-simple depth values
2022-11-09 09:57:12 +01:00
Unknown W. Brackets
745d9ad320 GPU: Avoid enabling depth test pointlessly.
See #16015.  Attempting to avoid a driver bug.
2022-11-08 20:06:08 -08:00
Unknown W. Brackets
855d16ffb3 GPU: Prefer scaling depth to 16-bit if using 24.
In most cases, this will be a lot faster than pixel depth rounding, and
may avoid more issues in vertex rounding.
2022-11-08 20:06:08 -08:00
Unknown W. Brackets
3333f2a5aa GPU: Avoid clears for non-simple depth values.
Some drivers don't round depth the same way for a clear vs for drawing,
which can cause mismatches.  We only do this if we see equals-style depth
comparison funcs used in drawing.
2022-11-08 20:06:08 -08:00
Unknown W. Brackets
585569c2c2 TexCache: Cleanup BGRA flag dirtying. 2022-11-08 20:01:14 -08:00
Henrik Rydgård
c6084c16c3 Fix GLSL compilation issues on really old Adreno drivers.
They don't seem to accept unsigned integers as switch cases.

Fixes some stuff in #16295 , not sure if all of it.
2022-11-08 22:59:43 +01:00
Henrik Rydgård
584ca5db6e
Merge pull request #16364 from unknownbrackets/gpu-self-copy
GPU: Avoid self memcpy()
2022-11-08 18:05:07 +01:00
Unknown W. Brackets
1f20e11d61 GPU: Avoid self memcpy(). 2022-11-08 07:41:32 -08:00
Henrik Rydgård
87bd7aaccc
Merge pull request #16356 from lvonasek/cleanup_camera_control
OpenXR - Camera adjust using any controller
2022-11-08 12:28:44 +01:00
Luboš Vonásek
92384c2854
Space added 2022-11-08 07:09:27 +01:00
Unknown W. Brackets
bc53a0d7c4 TexCache: Correct 16->32 for CLUT4 with shift. 2022-11-07 18:41:47 -08:00
Unknown W. Brackets
17f6c00c3c TexCache: Fix 16->32 colors with CLUT start pos. 2022-11-07 18:34:10 -08:00
Unknown W. Brackets
04cd6c4f7d TexCache: Align expandClut buffer, cleanup sizes.
We shouldn't need larger than 2 KB CLUT buffers, since it's actually only
1 KB.  We have a hack that allows 2 KB for separate mip map levels.
2022-11-07 18:18:02 -08:00
Henrik Rydgård
970c266b41 Restore parallel GLSL builds 2022-11-08 00:30:21 +01:00
Henrik Rydgård
4d637342f7 Log source code for failed pipeline creations 2022-11-08 00:21:08 +01:00
Henrik Rydgård
4e8f97d64d Output shader descriptions directly in the source code 2022-11-08 00:21:08 +01:00
Lubos
d1dabd40ee OpenXR - Disable range culling properly 2022-11-07 22:10:12 +01:00
Henrik Rydgård
24d5cd087c Experiment (Vulkan): Temporarily disable GLSL parallel compilation on Android. For #16341 investigation. 2022-11-07 14:30:24 +01:00
Henrik Rydgård
ad14d628b6 Turn off boundSecondaryIsInputAttachment_ when we don't have one. 2022-11-07 09:30:47 +01:00
Henrik Rydgård
668904a515 Vulkan: Use the very same view as input attachment and color attachment, not just the same image
Fixes most of the new validation errors seen #16351, though one remains.

I believe that to be a bug in the validation layers, will investigate
later.
2022-11-07 09:14:55 +01:00
Henrik Rydgård
41c812651d
Merge pull request #16347 from unknownbrackets/softgpu-skin
Always skin in decode for software transform and rendering
2022-11-06 20:21:02 +01:00
Henrik Rydgård
69941c0d72 Android fix 2022-11-06 20:01:22 +01:00
Henrik Rydgård
c91e7912bf Change "Simulate block transfer" to "Skip GPU Readbacks". Group the speed hacks together 2022-11-06 19:30:38 +01:00
Henrik Rydgård
519db766b6 Change "Rendering Mode" to just a "Skip buffer effects" checkbox. Reuse translations. 2022-11-06 19:26:56 +01:00
Unknown W. Brackets
31cb3a8eae
Merge pull request #16346 from hrydgard/remove-retain-changed-textures-setting
Change the "Retain changed textures" option into a compat.ini option.
2022-11-06 10:18:21 -08:00
Unknown W. Brackets
527947fd81 GPU: Correct softgpu curve issue. 2022-11-06 09:06:07 -08:00
Unknown W. Brackets
3de2557ecb GPU: Always skin in decode for software transform. 2022-11-06 08:55:07 -08:00
Unknown W. Brackets
7880eb15c1 softgpu: Always use software skinning.
There's only software skinning, after all.
2022-11-06 08:44:22 -08:00
Unknown W. Brackets
6c36f03a0d GPU: Purify vertTypeIsSkinningEnabled(). 2022-11-06 08:40:54 -08:00
Henrik Rydgård
95cb358fbf Change the "Retain changed textures" option into a compat.ini option.
This option benefits so few games and can hurt others, so that it's
better that we specifically enable it for known cases like Popolocrois.
2022-11-06 17:28:50 +01:00
Unknown W. Brackets
66472c39ce GPU: Use skinned position always in bounding check.
Meanwhile, move to a flag on decoder options instead of global check.
2022-11-06 08:23:31 -08:00
Unknown W. Brackets
a5d3af9cb0 GPU: Cleanup GetVertTypeID() usage. 2022-11-06 08:01:57 -08:00
Henrik Rydgård
b4507cd5cc Make a lot more code VR build for all platforms 2022-11-06 14:36:51 +01:00
Henrik Rydgård
0f37854ef9 Drop some D3D11 screen rotation support (was only used on Windows Phone) 2022-11-05 22:17:06 +01:00
Henrik Rydgård
ad6725b684 VK/D3D11: Move the rarely used "u_rotation" uniform to the frame uniform buffer.
This uniform is used in two cases:

* Non-buffered rendering in Vulkan, software transform
* Non-buffered rendering in D3D11 level 9 on Windows Phone, software transform
  - which I don't think anyone builds for anymore

Nice to not have it in the main uniform buffer, but mainly a
demonstrator/test of moving stuff to the new frame-global buffer, and
setting up the infrastructure.
2022-11-05 22:14:05 +01:00
Lubos
c6b83dd9d8 OpenXR - Enable camera movement and stereo in flatscreen mode 2022-11-03 20:00:30 +01:00
Henrik Rydgård
03a90b1bbf
Merge pull request #16321 from unknownbrackets/gedebugger-record
GE Debugger: Try harder to identify unchanged VRAM
2022-11-02 07:15:39 +01:00
Unknown W. Brackets
1ffdf0d5b8 GE Debugger: Respect unchanged VRAM each frame.
Oops, wasn't setting the version each run after caching the frame dump
data.
2022-11-01 22:56:29 -07:00
Unknown W. Brackets
00e8720749 GE Debugger: Try harder to identify unchanged VRAM.
If we exit to the CPU (stall), we don't know if VRAM gets changed by the
CPU.  We can check to avoid making the dump require unnecessary copying.
2022-11-01 22:47:46 -07:00
Unknown W. Brackets
5afb009b56 GE Debugger: Dump textures only if possibly used. 2022-11-01 22:15:11 -07:00
Unknown W. Brackets
e7185f93b3 GE Debugger: Restrict marking of dirty VRAM better. 2022-11-01 22:14:23 -07:00
Henrik Rydgård
7967da0f6f Vulkan: Fix descriptor set binding in geometry shader generator. Should fix #16315 2022-11-01 13:43:48 +01:00
Unknown W. Brackets
0a98ac43fa Debugger: Allow currently-invalid memory reference. 2022-10-29 17:43:35 -07:00
Henrik Rydgård
c6fe91224a Vulkan: Fixes validation errors with "null" textures
These arise in non-buffered rendering when we don't have a framebuffer
to texture from.
2022-10-28 18:40:55 +02:00
Henrik Rydgård
8e0b82f92e Address feedback 2022-10-28 17:42:21 +02:00
Henrik Rydgård
d9cfcf215e Need to request the proper type of uniform buffer descriptors.
Otherwise, assert on Mali.
2022-10-28 10:20:47 +02:00
Henrik Rydgård
10eb21d3b3 Add some extra checking for valid stereo shader. 2022-10-28 10:17:29 +02:00
Henrik Rydgård
ab1cebec51 Actually bind a global uniform buffer, too. Not yet used. 2022-10-28 10:15:36 +02:00
Henrik Rydgård
96a5c52037 Vulkan: Reserve descriptor set 0 for frame-global data, move everything else to set 1 2022-10-28 09:39:56 +02:00
Henrik Rydgård
85e7933e7a Format string fix 2022-10-27 11:06:00 +02:00
Henrik Rydgård
e058f8aee6 Shadergen fix for OpenGL 2022-10-27 11:05:59 +02:00
Henrik Rydgård
6d9008dab5 Fix validation issue with clears, remove redundant code 2022-10-27 11:05:59 +02:00
Henrik Rydgård
e0bbebc65e Clean up GPU_Vulkan::BuildReportingInfo a bit 2022-10-27 11:05:59 +02:00
Henrik Rydgård
763afd4a8e Improve compatibility checks for stereo rendering. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
931c869ca9 Fix for stereo with textureProj (emulated projection). 2022-10-27 11:05:59 +02:00
Henrik Rydgård
7d5bb79257 Fix depal texture binding bug 2022-10-27 11:05:59 +02:00
Henrik Rydgård
31fd928a5c Name more image views. Very useful with a little patch to the Vulkan debug layers. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
cd203291ba Fix rendering in non-stereo mode 2022-10-27 11:05:59 +02:00
Henrik Rydgård
15d4495f76 Pass shadergen tests 2022-10-27 11:05:59 +02:00
Henrik Rydgård
2a1526c352 Address feedback 2022-10-27 11:05:59 +02:00
Henrik Rydgård
390a136cb5 Stereo now works through shader depal too 2022-10-27 11:05:59 +02:00
Henrik Rydgård
8413473fa4 Fix more cases, GTA works now. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
524e92374f Use arrays more consistently. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
91259aaad7 Always use array textures for framebuffers in Vulkan for simplicity. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
2bea495981 wip 2022-10-27 11:05:58 +02:00
Henrik Rydgård
6af4644ab2 Stereo on mobile fixes 2022-10-27 11:05:58 +02:00
Henrik Rydgård
0de12f5ca9 Some refactoring of framebuffer views, layer issues, more work. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
2e87f0bc0b More work. Things are starting to work now. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
c668736924 Add a couple of stereo display shaders, add infrastructure, compile stereo pipelines 2022-10-27 11:05:58 +02:00
Henrik Rydgård
12d1f94d47 Start stereo postshader work 2022-10-27 11:05:58 +02:00
Henrik Rydgård
fb250c4b29 More multiview work 2022-10-27 11:05:58 +02:00
Henrik Rydgård
d3804ec2e5 Misc multiview hackery 2022-10-27 11:05:58 +02:00
Henrik Rydgård
bbb55e9b1d
Merge pull request #16284 from unknownbrackets/gedebugger
GE Debugger: Correct UV display with prescale
2022-10-26 09:32:57 +02:00
Unknown W. Brackets
1e1c75d552 GE Debugger: Correct UV display with prescale.
Sometimes these weren't flushed yet, and it made the texture preview and
vertices confusing and wrong (using old factors, not just no factors.)
2022-10-25 22:14:16 -07:00
Henrik Rydgård
80e1db07a7 Minor ShaderWriter refactor, prep for later changes 2022-10-24 17:45:18 +02:00
Henrik Rydgård
41f3443988
Merge pull request #16280 from unknownbrackets/d3d11-debugger
GE Debugger: Allow reading tex on D3D11
2022-10-24 08:17:03 +02:00
Unknown W. Brackets
7533b64940 GE Debugger: Allow reading tex on D3D11. 2022-10-23 22:01:50 -07:00
Henrik Rydgård
1d8ab38ce5 Vulkan: Use v2 feature checks, and add check for multiview features.
Extracted from the multiview PR, and renamed some stuff.
2022-10-24 00:21:28 +02:00
Henrik Rydgård
ecf2797173 Minor refactor of ShaderWriter flags. Extracted from the stereo PR 2022-10-23 21:57:01 +02:00
Henrik Rydgård
a13ab3f76b
Merge pull request #16274 from unknownbrackets/gpu-boundingbox
Correct accuracy of bounding box test
2022-10-23 12:53:18 +02:00
Unknown W. Brackets
79b1d1d35f
softgpu: Better approximate slope mip level mode (#16276)
* samplerjit: Remove unused x/y parameters.

Still need to tune the accuracy of filtering, but those were not the
right way.

* softgpu: Better approximate slope mip level mode.

This isn't exactly right, but it's closer.

* softgpu: Calculate auto from largest difference.

Direction shouldn't matter.
2022-10-23 10:15:43 +02:00
Unknown W. Brackets
813bfded92
x86jit: Correct vh2f NAN handling (#16275)
* x86jit: Correct vh2f NAN handling.

Allows another test to pass.

* x86jit: Reuse MAccessibleDisp().
2022-10-23 10:09:29 +02:00
Unknown W. Brackets
add2edcab8 VR: Always pass the bounding box check.
Likely better to draw all objects, even if they wouldn't have been on
screen, for VR purposes.
2022-10-22 16:52:02 -07:00
Unknown W. Brackets
261f1e13db GPU: Account for scissor/viewport in bound test.
The bounding box check doesn't check against viewport (which the PSP
generally doesn't clip against), but instead checks against the scissor.

If the scissor doesn't fit inside the offset 4096x4096 box, that direction
is cannot fail the test.
2022-10-22 16:52:02 -07:00
Unknown W. Brackets
93ee82d84f GPU: Respect depth clamp in bounding box check.
Although, logically, this feels reversed - it rejects the point if it's
outside positive Z, which would clamp.  This matches PSP tests.
2022-10-22 16:05:30 -07:00
Unknown W. Brackets
8b80c5fb28 GPU: Allow/use indices in bounding box check.
Not sure any games actually use this, but it's supported.
2022-10-22 16:05:29 -07:00
Unknown W. Brackets
519c90e049 GPU: Correct large morph vertex advance.
Can be 544 bytes per vertex.
2022-10-22 16:05:29 -07:00
Unknown W. Brackets
b7a617023c GPU: Consume cycles in bounding box check. 2022-10-22 16:05:29 -07:00
Unknown W. Brackets
6ddf22487b GPU: Correct bounding box for larger counts.
Matches tests on a PSP with float/transform format.
2022-10-22 16:05:29 -07:00
Henrik Rydgård
3af86ec6f7 Make it possible to specify extensions for Vulkan in the ShaderWriter 2022-10-22 17:46:57 +02:00
Henrik Rydgård
6aa3e4b242 Minor refactoring in PresentationCommon
Broken out from stereo work
2022-10-21 15:53:09 +02:00
Henrik Rydgård
f2193814ee PresentationCommon: Use refcounts to simplify shader module management 2022-10-21 14:18:29 +02:00
Henrik Rydgård
cafce7365b Vulkan: Fix frame ordering issue with postprocessing shaders
Requested an init command buffer outside the frame, which is dangerous
and caused validation problems with command pool resets.

Would like to assert on insideFrame in GetInitCmd, but we use it from
some init code where it does work correctly. Might clean that up at some
point.
2022-10-21 12:52:21 +02:00
Henrik Rydgård
a830f18054
Merge pull request #16265 from unknownbrackets/lighting-nonormal
GPU: Respect world matrix and reverse flag w/o normals
2022-10-21 09:16:53 +02:00
Unknown W. Brackets
d23293ee72 GPU: Respect matrix and reverse flag w/o normals.
See frame dump in #14223, which requires world matrix be applied.
2022-10-20 23:15:25 -07:00
Unknown W. Brackets
6945604492 softgpu: Multiply prev normal by world matrix.
Even when it's not in the vertex data, we still must multiply by the world
matrix.  Fixes some lighting issues in Nayuta no Kiseki.
2022-10-20 23:14:54 -07:00
Unknown W. Brackets
d6a59be012 softgpu: Respect negate normal flag without norm.
Per tests, Z is still negated even when using the previous normal value.
2022-10-20 23:09:48 -07:00
fp64
2c814c568a
Some more codestyle cleanup 2022-10-20 06:59:35 -04:00
fp64
9a01db5f42
Change wrap_mode to clamp for bicubic upscaler
It was set to wrap, even though the comment claimed otherwise. Previous implementation had clamp, as do (I think) other upscaling modes (Hybrid, etc.).

Also make upscaler codestyle a little more consistent with the rest.
2022-10-20 06:53:49 -04:00
Henrik Rydgård
90d395a10d Remove "attachment" parameter from BindFramebufferAsTexture everywhere.
Not actually useful since our framebuffer objects don't support multiple
color images, and probably won't ever need to.
2022-10-20 10:15:19 +02:00
Henrik Rydgård
8cd602a9c6
Merge pull request #16257 from unknownbrackets/error-cleanup
Kernel: Fix reported StopThread error
2022-10-19 08:06:30 +02:00
Unknown W. Brackets
a42064eb48 Vulkan: Correct some enum switch warnings.
Nice to log debug annotations anyway.
2022-10-18 21:52:38 -07:00
Lubos
eed75889e4 OpenXR - Ensure scene analyze is called the same way as before 2022-10-18 12:23:23 +02:00
Henrik Rydgård
269eb55c17 Build/warning fix 2022-10-18 10:48:16 +02:00
Henrik Rydgård
aa51bfd1ef Use GPU "use" flags to replace IsVRBuild in the renderer. It remains elsewhere. 2022-10-17 19:57:11 +02:00
Henrik Rydgård
7c5fc3ccb5 Reorder the GPU USE flags a bit 2022-10-17 19:55:11 +02:00