nmzik
a833e1b735
graphics: fix vertex and instance IDs for unpatched indirect draws
2026-10-28 04:33:03 +01:00
nmzik
a5b3673a39
graphics: draw patched-offset indirect draws from GPU-read records
2026-10-27 10:13:15 +01:00
nmzik
9d8c458535
gpu: keep reused smaller image tables resident and drop them a frame after their last draw
2026-10-27 10:13:15 +01:00
Senaxx
1ec69f8e7d
gpu: make cull mode and front face dynamic state
2026-10-27 07:04:38 +01:00
26ca609236
shader: type pixel outputs of UINT and SINT render targets as integer vectors
...
Co-authored-by: Ali Almohaya <AliAlmohaya@gmail.com >
Co-authored-by: Mac <me@itsmemac.com >
Co-authored-by: Senaxx <michelbeld@gmail.com >
2026-10-26 05:32:02 +01:00
nmzik
be1c84f4d7
graphics: shorten the mesh draw skip warning
2026-10-26 05:32:02 +01:00
nmzik
560756f34c
graphics: skip draws of mesh shaders that exceed host mesh limits
2026-10-26 05:32:02 +01:00
nmzik
95bbc9c65d
graphics: hold image heap descriptors whose address another extent pins
2026-10-26 05:32:02 +01:00
nmzik
4db225008b
graphics: resize image heap tables in place when their descriptor size changes
2026-10-26 05:32:02 +01:00
nmzik
dc3bd68dee
gpu: bound null storage bindings to zero bytes
2026-10-26 05:32:02 +01:00
nmzik
c1dfb309a1
graphics: drop image heap table snapshots superseded at the same base
2026-10-26 05:32:02 +01:00
nmzik
ba7f9969ef
shader: bound storage buffers by pushed binding sizes instead of OpArrayLength
2026-10-26 05:32:02 +01:00
nmzik
463a096249
graphics: unwatch image heap pages on writes next to a table
2026-10-26 05:32:02 +01:00
nmzik
83f8bfd3c9
pipeline: print a console message before the shader cache warm-up
2026-10-25 02:20:44 +02:00
nmzik
dd5bc26c64
pipeline: write the shader store on a background thread
2026-10-25 02:20:44 +02:00
nmzik
ec8b75b244
pipeline: persist shaders and pipelines per game and prewarm them at boot
2026-10-25 02:20:44 +02:00
nmzik
87e49282b8
pipeline: log real shader compiles to the console
2026-10-25 02:20:44 +02:00
nmzik
1816004357
shader: serialize resource plans for the shader cache
2026-10-25 02:20:44 +02:00
nmzik
bfc377627a
pipeline: create pipelines from GraphicsPipelineKey and shader modules
2026-10-25 02:20:44 +02:00
nmzik
4b651f2ba7
pipeline: fold the program cache into PipelineCache with stable module ids
2026-10-25 02:20:44 +02:00
nmzik
dbc7b8b2ff
pipeline: look up draw programs and pipelines from the command buffer
2026-10-24 05:18:46 +02:00
nmzik
269e411ef2
graphics: index live cache slots directly
2026-10-24 04:26:16 +02:00
nmzik
8dc0d56b7e
common: SlotVector without generations
2026-10-24 03:48:46 +02:00
Senaxx
77a8f30758
shader: read S_MEMREALTIME from the host device clock shifted to about 100 MHz
2026-10-23 19:48:53 +02:00
nmzik
f9e14084d6
graphics: set the heap flag in ImageHeapResource
2026-10-23 07:22:33 +02:00
nmzik
38c884e8c1
graphics: keep image heap descriptors of unmapped textures null
2026-10-23 07:17:57 +02:00
nmzik
27dc7c281f
graphics: keep bounded image heaps resident in a bindless descriptor set
2026-10-23 07:17:57 +02:00
nmzik
79837b423d
graphics: support compute stores to 2D MSAA images
2026-10-22 22:11:06 +02:00
nmzik and Artyom Zabroda
aafe014d0c
shader: read raw D16 depth bits through kDepth k16UInt image loads
...
Co-authored-by: Artyom Zabroda <artyomzabroda@proton.me >
2026-10-22 22:11:06 +02:00
nmzik
c513a4a13a
graphics: draw single indexed indirect draws from GPU-read arguments
2026-10-22 16:12:20 +02:00
286481889f
shader: emit float min/max as host instructions on AMD GPUs ( #1761 )
...
* shader: emit float min/max as host instructions on AMD GPUs
V_MIN_F32, V_MAX_F32, V_MIN3_F32 and V_MAX3_F32 were emulated with a
classify-and-select sequence of about a dozen instructions each, to give
the guest's NaN and signed-zero results on any host. AMD GPUs execute
GLSL.std.450 NMin/NMax with those same rules, so emit them directly when
the device is AMD and supports VK_KHR_shader_float_controls2. Each
instruction is decorated FPFastMathMode None, since
SignedZeroInfNanPreserve does not cover extended instructions. MED3 keeps
its exact emulation. KYTY_EMULATED_FLOAT_MIN_MAX=1 keeps the emulation.
In SAROS the two heaviest compute shaders get 37% and 59% faster on an
RX 9070 XT (RADV), about 4 ms of GPU time per frame.
Adds VectorMinMaxF32RuntimeEdges (runtime operands, so nothing is folded)
and a --float-min-max-only mode that runs it and
VectorMinMaxF32NanAndSignedZeroEdges with the emulation and, where
supported, with host instructions.
Developed with AI assistance (Claude Code).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
* shader: gate host float min/max on RADV and check the emitted instructions
* shader: drop float controls 2 from host float min/max
* shader: drop the float min/max env override and atomic flag
* shader: pass host capabilities to the SPIR-V emitter as a profile built once per device
* shader: enable host float min/max on AMD GPUs
---------
Co-authored-by: arda <ardaeska@gmail.com >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: nmzik <Nmzik@mail.ru >
2026-10-21 21:36:08 +02:00
nmzik
13b291f998
gpu: honour DB_ALPHA_TO_MASK as alpha-to-coverage and keep its depth writes behind the shader
2026-10-21 19:17:50 +02:00
nmzik
68d0ba5a81
shader: bound scalar-read overlap checks by the bytes fixed-offset buffer writes reach
2026-10-21 05:48:13 +02:00
nmzik
70668fbd98
gpu: drop global barriers for PM4 flush events and releases, ordering buffer-writing draws like dispatches
2026-10-21 02:02:25 +02:00
nmzik
8843291506
gpu: accept any T# perf_mod on storage textures through a shared canonical encoding check
2026-10-20 15:21:19 +02:00
Mr. Big Britches
feed075a9f
gpu: implement PA_CL_UCP user clip planes through draw push constants
2026-10-20 15:21:19 +02:00
Almo7aya
cd4eab9d65
gpu: clamp resolved buffer ranges to storage buffer limits
2026-10-19 13:53:18 +02:00
nmzik
fde0b98e69
gpu: preserve zero-stride buffer fetch payloads
2026-10-19 12:23:43 +02:00
shadowbeat070
d4465faa79
gpu: preserve ordered-append command order
2026-10-19 11:46:39 +02:00
nmzik
e5f0ee7fc2
gpu: preserve finite buffer descriptors across sparse PRT holes
2026-10-19 05:26:41 +02:00
nmzik
2c730e58ea
revert HTile lifetime changes and opt-in ZMask support
2026-10-19 05:04:56 +02:00
Pixeluted
cad6aafdc5
shader: detect and loudly skip unsupported GPU-buffer callables
2026-10-19 05:04:56 +02:00
nmzik
ab8566591f
shader: link multiple compute helpers without synthetic return loops
2026-10-19 02:34:25 +02:00
nmzik
b2d3ce6dfc
shader: size expanded sampler bindings independently of native roots
2026-10-19 02:34:25 +02:00
nmzik
37df7f3278
Show pipeline cache sizes in MB and remove obsolete texture folder cleanup
2026-10-18 03:57:45 +02:00
nmzik
763d3be3a9
graphics: add opt-in ZMask support and launcher rendering options
2026-10-17 17:50:02 +02:00
Juan Pablo Farias and nmzik
6aa3846fb2
feat: add an in-game performance panel ( #1090 )
...
Add in-game performance panel
Co-authored-by: nmzik <Nmzik@mail.ru >
2026-10-17 14:47:51 +02:00
shadowbeat070
d58aefde49
renderer: reduce synchronization and allocation overhead
...
Performance changes from #1495 :
- Sync changed BDA ranges instead of scanning all mappings.
- Let VMA suballocate BDA buffers.
- Remove the renderer lock from presentation.
- Keep compatible pipeline caches across builds.
- Fold masked shifts that always produce zero.
2026-10-16 17:18:49 +02:00
nmzik
f7226ca7dc
graphics: emit PS5 register object and primitive IDs to RT7
2026-10-15 22:28:01 +02:00
nmzik and fxpw
959bee4799
graphics: checkpoint live Vulkan pipeline cache after new compilations
...
Co-authored-by: fxpw <fxpw@outlook.com >
2026-10-15 22:28:01 +02:00