TJnotJT
2954ebe696
GS:VK: Cleanup render pass handling.
...
Rewrite render pass builder.
Make a begin/end present render pass function.
Rename `depth_sampling` to `depth_feedback`.
2026-10-11 19:59:12 +02:00
TJnotJT
8fab8847f9
GS:VK: Remove legacy device validation layers.
2026-10-11 19:59:12 +02:00
TJnotJT
ecc3b3cc41
GS:VK: Cleanup creation of VK structs.
...
Avoid using unnamed initializer lists.
2026-10-11 19:59:12 +02:00
TJnotJT
4463fe4e7b
GS:MTL: Use uvec4 for color vertex input.
2026-10-06 23:30:57 +02:00
TJnotJT
deb23b0d8d
GS:GL: Use uvec4 for color vertex input.
...
For uniformity with VK.
2026-10-06 23:30:57 +02:00
TJnotJT
c5f38cc8f7
GS:VK: Order extension messages according to functionality.
2026-10-05 20:03:18 +02:00
TJnotJT
144a19ba05
GS:DX12: Remove unused variable.
2026-10-04 14:08:47 -04:00
TJnotJT
81526d4dc7
GS:VK: Remove unused line_width pipeline selector.
2026-10-01 17:56:02 +02:00
TJnotJT
9861b15419
GS:HW: Denormalize RT color when shuffling while blending.
2026-09-26 23:36:42 +02:00
TJnotJT
99f5d76c8d
GS:HW: Remove integer bitcast version of GSVector4::cxpr().
...
It can unintentionally result in invalid floating point values.
2026-09-26 01:15:07 +02:00
TJnotJT
529ec5d94c
GS:MTL: Bitcast float to uint before casting to uchar4.
...
Try to avoid ICE on older Metal drivers.
2026-09-24 02:06:43 -05:00
TJnotJT
650d704856
GS: Bump shader cache version.
...
For shader edit in commit 9056c08349 .
2026-09-20 11:17:44 -04:00
TJnotJT
6b3501baf6
GS: Add missing config elements and formatting fixes.
2026-09-20 10:30:10 -04:00
TJnotJT
9056c08349
GS:MTL: Fix gXbY shuffle bitshift in shader.
2026-09-20 13:07:52 +02:00
TJnotJT
61c21b3a3d
GS: Fix some path names in baked shaders.
2026-09-20 07:31:30 +02:00
TJnotJT
70105ba130
GS: Add some missing baked shaders.
2026-09-19 06:32:25 +02:00
TJnotJT
8cbd9f2de1
MSVC: Make baking shader in CPP default off.
2026-09-16 06:34:44 +02:00
TJnotJT
c7fb6cdaaa
GS/HW: Allow baking shaders into executable.
2026-09-14 06:21:15 +02:00
TJnotJT
4a4cbb875e
GS: Allow logging frame timings stats using hotkey.
2026-09-10 06:47:15 +02:00
TJnotJT
6a0d3011ab
GS: Add options to dump replay frame range.
...
Also allow dumping stats from the GUI after running a dump.
2026-09-10 06:47:15 +02:00
TJnotJT
d3cc62f37e
GS:VK:DX12: Code cleanup for GPU timing.
2026-09-10 06:47:15 +02:00
TJnotJT
bbc57ec622
GS:HW: Fix bpp assertion in GetConvertShader().
2026-09-09 03:08:21 +02:00
TJnotJT
ac24959c4a
GS: Use "coords" in rewrite large ST hack for clarity.
2026-09-07 01:06:22 +02:00
TJnotJT
77bec5e0f5
GS/HW: Rewrite vertices if large ST.
...
Adds vertex rewriting functionality to both HW/SW. Aggressive version is user hack. Adds a GameDB hack for Ridge Racer V and Destruction Derby Arena. For SW, a less aggressive version is used if the hack is not enabled.
2026-09-04 12:05:30 +02:00
TJnotJT
77cfac7dbe
GS:HW: Do ROV channel masking with FBMask.
2026-09-04 11:39:30 +02:00
TJnotJT
bd9b6daaad
GS:HW: Reduce primid max value.
...
Large values may cause errors in primid DATE on Mesa OpenGL.
2026-09-04 01:37:00 +02:00
TJnotJT
9120e6fb6a
GS:HW: Allow dumping PrimID texture with RT dumping.
2026-09-04 01:37:00 +02:00
TJnotJT
29b7bc4466
GS:VK: Only use feedback loop layout for depth if texture barrier is supported.
2026-08-07 01:02:39 +02:00
TJnotJT
ab6bc30aec
GS:DX11: Fix typo in query destruction.
...
Fixes a bug when disabling then enabling pipeline stats.
2026-07-31 17:28:57 +02:00
TJnotJT
5793dbc1ef
GS:HW: Only enable GPU timing/stats in backend if the option is enabled.
...
Helps prevent a crash in Mesa3D Windows drivers.
2026-07-31 17:28:57 +02:00
TJnotJT
fa50a11eac
GS:HW: Add feedback flags for VK depth stencil creation.
...
VK does depth feedback with depth textures. Fixed regression with texture usage flag refactor.
2026-07-25 21:08:36 +02:00
TJnotJT
562c32cd15
GS:HW: Fix ROV texture type conversion for temporary Z.
2026-07-16 16:41:31 +02:00
TJnotJT and t654132
a50ed4d05a
GS:HW: Fix regression with prefer_reuse texture fetching flag.
...
Boolean value of the flag was not properly inverted in a refactor.
Co-authored-by: t654132
2026-07-15 14:34:40 +02:00
TJnotJT
4f62bff866
GS:DX:VK: Always make null texture with UAV usage.
2026-07-12 21:25:53 +02:00
TJnotJT
8510ec29ba
GS/DX: Fix typo with primid init output.
2026-07-12 21:20:28 +02:00
TJnotJT
eb5e3fcd13
GS/HW: Make all vertices the same color in certain flat shading cases.
...
Fixes issues with AA1 with flat shading.
2026-07-10 10:16:51 +02:00
TJnotJT
8c1b3f8ce3
QT: Remove ROV tabstop in graphics advanced section.
...
No longer used in this part of the GUI.
2026-07-09 11:44:18 +02:00
TJnotJT
55b37b794c
GS:DX12: Index pipelines in correct shader cache table.
2026-07-09 11:43:44 +02:00
TJnotJT
1aca396e34
GS/DX12: Make sure null texture has correct descriptor type for slot.
2026-07-09 11:43:17 +02:00
TJnotJT
7a90caedec
GS/HW: Force depth ROV if alpha test needs depth feedback.
2026-07-02 19:46:47 +02:00
TJnotJT
017b4d07da
GS/HW: Improve ROV discard behavior.
...
Try to avoid color/depth write when it's discarded.
2026-07-02 19:46:47 +02:00
TJnotJT and refractionpcsx2
a6b1040caf
GS: Update target TEX0 on a move if buffer width is increased.
...
Co-authored-by: refractionpcsx2
2026-06-28 21:51:10 +02:00
TJnotJT
99a78f9a55
GS: Add GPU pipeline stats to OSD.
...
Adds vertex shader and pixel shader invocations.
2026-06-28 12:39:56 -04:00
TJnotJT
c3ace64205
GS/HW: Change prefer_unused_texture parameter to prefer_reuse in GSDevice::FetchSurface().
...
prefer_reuse is the opposite of prefer_unused_texture, so all corresponding arguments are inverted.
2026-06-28 12:13:38 -04:00
TJnotJT
3b2c1ec6e3
GS/DX12: Fix DX12 renderpass restart optimization rebase error.
2026-06-28 12:13:38 -04:00
TJnotJT
dba432639e
GS/VK: Detect max supported framebuffer dimensions for null framebuffer.
2026-06-28 12:13:38 -04:00
TJnotJT
166c4491c2
GS/HW: ROV activation revisions.
...
Force color ROV if depth ROV is used.
Only force color/depth ROV if the draw actually uses both color/depth (fixes a bug with temporary DS for stencil being used as a ROV).
Simplify the ROV activation heuristic a bit (removed unused variables, simplify barrier counting, etc.)
2026-06-28 12:13:38 -04:00
TJnotJT and TellowKrinkle
d1cd5a62ed
GS/HW: ROV revisions.
...
Use GSTexture::FeedbackTarget RTs by default (not GSTexture::ShaderWriteTarget).
Do ROV type conversion for both color and depth (if needed).
Make sure the formats for ROV actually support UAV/storage image.
Change 'PSSetUnorderedAccess' to 'PSSetROVs' for clarity.
DX12: Use enum names instead of raw constants in PSSetShaderResource().
Some string format cleanup to GL_*() macros.
VK: Do not enable ROV if FB fetch is available.
Other misc cosmetic changes such as whitespace, etc.
Co-authored-by: TellowKrinkle
2026-06-28 12:13:38 -04:00
TJnotJT and TellowKrinkle
b11a406519
GS: Change GSTexture::Type to GSTexture::Usage
...
Usage fits more cleanly with API flags.
Also separates out feedback and write usage from render target.
Co-authored-by: TellowKrinkle
2026-06-28 12:13:38 -04:00
TJnotJT and TellowKrinkle
c7042e1877
GS/HW: Use CreateCompatible() in texture cache to propagate correct formats.
...
Co-authored-by: TellowKrinkle
2026-06-28 12:13:38 -04:00
TJnotJT
eadb46c5ac
GS/DX12: Remove unnecessary UAV state and simplify texture unbinding.
2026-06-23 02:59:46 +02:00
TJnotJT
e2a3670d65
GS/HW: Adjust line AA1 blur with upscaling.
2026-06-20 22:09:33 +02:00
TJnotJT
6c4a8efe25
QT/FSUI: Set ROV default off and move the settings to Graphics>Rendering.
...
ROV may have negative performance impacts on some games/systems so allow users to opt in. Also it needs further revision/refinement.
2026-06-15 18:31:08 +02:00
TJnotJT
76f690d96e
GS/DX11/GL: Fix sample area calculation for RT/DS sampling hazard.
2026-06-12 18:58:17 +02:00
TJnotJT
254d955f89
GS/HW: Fix PS selector bits format in debug strings.
...
Fix the formatting since bit width went from 96 to 128.
2026-06-03 04:52:54 +02:00
TJnotJT
e490685b42
GS/HW: Improve unordered access flag handling for RTs.
...
Only for DX11, which doesn't track resource state otherwise.
2026-06-03 03:26:24 +02:00
TJnotJT
7b0c39a20d
GS/GL: Remove ROV support.
...
Buggy on multiple systems, even with various barrier hacks.
2026-06-03 03:26:24 +02:00
TJnotJT and SternXD
059d631a6d
QT/FSUI: Add ROV options to FSUI and QT.
...
Co-authored-by: SternXD
2026-06-03 03:26:24 +02:00
TJnotJT and TheLastRar
7c255bd58d
GS/VK: Fix for broken feedback transitions on Windows RDNA2.
...
Co-authored-by: TheLastRar
2026-06-03 03:26:24 +02:00
TJnotJT
bbcd5ec25e
GS/HW: ROV support.
2026-06-03 03:26:24 +02:00
TJnotJT
8df49d7676
GS/HW: Fix a number of compiler warnings.
...
Missing default case in switch statement.
Signed/unsigned implict conversion.
Unused variables.
Hidden virtual overloaded function.
2026-05-31 22:38:31 +02:00
TJnotJT
74f2f73ce6
GS/HW: Use an enum instead of boolean to specify nearest/bilinear filtering.
2026-05-31 18:43:01 +02:00
TJnotJT and TellowKrinkle
1e2f60a9b8
GS/HW: Ignore HW bilinear flag for shaders that do SW bilinear.
...
Co-authored-by: TellowKrinkle
2026-05-31 18:43:01 +02:00
TJnotJT and TellowKrinkle
bf892e9ece
GS/HW: Treat depth input as R32 color input in convert shaders.
...
Co-authored-by: TellowKrinkle
2026-05-31 18:43:01 +02:00
TJnotJT and TellowKrinkle
a44fe80caa
GS/HW: Refactor shader copy and texture formats.
...
Make it easier to add new depth formats, and code cleanup.
Co-authored-by: TellowKrinkle
2026-05-31 18:43:01 +02:00
TJnotJT
3f4b424200
GS/TC: Refactor/cleanup preload function.
2026-05-30 10:47:47 -04:00
TJnotJT
4d25bdcabb
GS/DX11/GL: Adapt full barrier multidraw FB copy for sampling RT/DS hazards.
2026-05-30 14:52:42 +02:00
TJnotJT
02c5f8f648
GS/HW: Fix offset draw vertex trace/draw rect.
2026-05-29 23:27:33 +02:00
TJnotJT
9cd0ec1634
GS/HW: Use sampled area for RT/DS sampling hazards.
2026-05-23 11:14:46 +02:00
TJnotJT
a19b3747ea
GS/HW: Add AA1 triangle corner caps and edge extrapolation.
2026-05-20 01:02:00 +02:00
TJnotJT
534330aa99
GS/VK: Make sure layout changes are propagated to descriptors.
2026-05-18 08:41:26 +02:00
TJnotJT
c1cb214a03
GS/HW: Add debug blend setting.
...
Will enable SW blend and disable many optimizations.
2026-05-13 19:49:07 +02:00
TJnotJT
4ef84fa51c
GS/HW: Fix flat shaded color in AA1 shader.
2026-05-12 14:46:49 +02:00
TJnotJT
4fa2b8e45d
GS/HW: Fixes/improvements to early scissor/bbox test.
2026-05-09 13:48:42 +02:00
TJnotJT
0949f193b8
GS/SW: Adjust bounds in assertion to present false positive.
...
Account for the fact that bottom/right coordinates are exclusive.
2026-05-06 20:46:51 +02:00
TJnotJT
5f3dc1a76e
GS/SW: Early exit optimization for multithreaded horizontal lines.
2026-05-06 20:46:51 +02:00
TJnotJT
9afea55bb6
GS/SW: Adjust bbox to account for AA1 and points/line rounding.
2026-05-06 20:46:51 +02:00
TJnotJT
433614ae85
GS: Adjust primitive bbox in vertex kick to account for AA1.
2026-05-06 20:46:51 +02:00
TJnotJT
00c85c4a8f
GS/TC: Use temporary source on invalid TEX0.
2026-05-06 19:18:04 +02:00
TJnotJT
8b82fbb449
GS/HW: Add constant buffer dumping.
2026-05-03 18:05:35 +02:00
TJnotJT
3d71e310c0
GSRunner: Add -debugdevice command line parameter.
2026-04-30 02:21:35 +02:00
TJnotJT
02d0f613ba
GS/HW: Fix brackets in texture shuffle detection.
2026-04-30 02:03:44 +02:00
TJnotJT
f95b2ce24d
GS/HW: Reorganize AA1 setup and fix some performance bugs.
...
Separate depth feedback setup it is not duplicated in both AA1 and alpha test setup.
Try to optimize out depth feedback in AA1 if triangle interiors are discarded.
Fix barriers not being properly enabled for AA1 triangles (was only activating if depth test was used).
2026-04-25 22:26:09 +02:00
TJnotJT
8cfd583605
GS/HW: Use correct draw functions in backend passes.
...
Fixes broken primid and blend multipass draws.
Regression from AA1 changes to draw functions.
2026-04-23 02:32:33 +02:00
TJnotJT
d0ee5b859a
GS/VK: Fix flat specifier in VK shader.
2026-04-21 23:28:00 +02:00
TJnotJT
2ae8f1f23f
GS/HW: Support HW AA1 for lines/triangles.
...
Credits: concept by TellowKrinkle.
2026-04-20 11:16:27 +02:00
TJnotJT
3722d392d8
GS/TC: Remove debug code.
2026-04-18 13:30:19 +02:00
TJnotJT
09fcc4d60e
GS/TC: Break LookupTarget() into 3 functions.
...
Separate draw lookup from frame lookup. Put common code in another processing function.
2026-04-17 20:17:46 +02:00
TJnotJT
c26c2236c5
GS/TC: Fix alpha write masking check in target update.
...
Make sure we detect when FB mask is such that only alpha is written. Avoid incorrectly updating RGB to a target when we don't need it and possibly nuking other depth targets in the process.
2026-04-15 20:58:08 +02:00
TJnotJT
f3496e3858
GS/HW: Set valid flags if display target has exact match with recent transfer.
2026-04-15 20:56:23 +02:00
TJnotJT
fce3be8544
GS/HW: Disable HPO/even sprite position on texture shuffles.
...
Quad conversion in texture shuffles is already aligned and not intended to interact with upscaling coord fixes.
2026-04-12 19:38:14 +02:00
TJnotJT
06616ec98e
GS: Refactor texture shuffle detection and quad conversion.
2026-04-11 08:16:04 +02:00
TJnotJT
26bd916e37
GS: Add utility functions for vertices/quads.
2026-04-11 08:16:04 +02:00
TJnotJT
9022072de8
GS/HW: Separate DrawPrims() into functions.
2026-04-07 17:42:46 +02:00
TJnotJT
08d3cc32f4
GS: Ignore CRTC outputs with negative sizes.
2026-04-07 16:20:27 +02:00
TJnotJT
372fadfb99
GS/HW: Disable depth if zero clear, ZBP == FBP, and depth/RT different bpp.
2026-03-29 21:53:14 +02:00
TJnotJT
406c2c0bbf
GS/HW: Cleanup DATE configuration.
2026-03-29 21:10:33 +02:00
TJnotJT
a5ba35ce92
GS/HW: Check overlap of required rect with valid area in source lookup.
...
Check recent transfers for RT in source lookup if it has dirty rects or the valid area does not intersect with the required rect. The latter check is needed in case a recent transfer did not intersect the valid area of the RT.
2026-03-29 21:04:09 +02:00
TJnotJT
1356f282d0
GS/HW: Don't clamp negative coords to 0 in texture shuffle detection.
2026-03-20 20:48:53 +01:00
TJnotJT
daa0d2d3c4
GS: Check if CRTCs have same source after register update.
...
Previously the check happened before the register update, which could cause it to be incorrect.
2026-03-20 12:40:23 +01:00