Triang3l
d5815d9e6a
[Vulkan] Float24 depth range remapping fixes
2022-06-29 13:14:00 +03:00
Triang3l
05ef7a273a
[Vulkan] Samplers (only 1.0 core features for now)
2022-06-28 22:42:18 +03:00
Triang3l
5d9061cf99
Merge branch 'master' into vulkan
2022-06-28 22:05:45 +03:00
Triang3l
243683d2e9
[GPU] Cleanup Texture::MarkAsUsed conditionals
2022-06-28 22:04:26 +03:00
Triang3l
382710bab7
[GPU] Normalize sampler clamp modes
2022-06-28 21:58:58 +03:00
Triang3l
cedc94679b
[GPU] Don't drop the rest of the command list if IssueDraw fails
2022-06-28 21:40:06 +03:00
Triang3l
9672230d9f
Merge branch 'master' into vulkan
2022-06-26 18:59:49 +03:00
Triang3l
ec008463b6
[GPU] CrYCb/YCrCb border colors
2022-06-26 18:56:50 +03:00
Triang3l
2606fa5709
[GPU] Apply BaseMap MipFilter via samplers as it may be overridden
...
Make it have no effect on the texture resource as a resource may be used with samplers with different overrides. Also make sure magnification vs. minification is not undefined with it on Direct3D 12.
2022-06-26 18:41:38 +03:00
Triang3l
e191430091
Merge branch 'master' into vulkan
2022-06-26 16:58:27 +03:00
Triang3l
086a070fa9
[GPU] Explicitly cast bit field values in std::min/max
...
According to the integral promotion rules https://eel.is/c++draft/conv.prom#5.sentence-1 bit fields can be promoted to `int` if it's wide enough to store their value, and then otherwise, to `unsigned int`. Hopefully fixes Clang building (the `width_div_8` case).
2022-06-26 16:54:11 +03:00
Triang3l
e0b890fe5c
[DXBC] Remove alphatest/A2C with [earlydepthstencil]
2022-06-26 15:31:08 +03:00
Triang3l
6688b13773
[Vulkan] PsParamGen
2022-06-26 15:01:27 +03:00
Triang3l
a99a1be880
Merge branch 'master' into vulkan
2022-06-26 15:00:21 +03:00
Triang3l
b787f2dec1
[GPU] GPR count limit is 128, not 64
2022-06-26 14:45:49 +03:00
Triang3l
a5c8df7a37
[Vulkan] Remove UB-based independent blend logic
...
On Vulkan, unlike Direct3D, not writing to a color target in the fragment shader produces an undefined result.
2022-06-25 20:57:44 +03:00
Triang3l
d8b2944caa
[Vulkan] Handle unsupported fillModeNonSolid + fix portability subset feature checks
2022-06-25 20:46:52 +03:00
Triang3l
d30d59883a
[Vulkan] Color exponent bias and gamma conversion
2022-06-25 20:35:13 +03:00
Triang3l
b1be33004a
Merge branch 'master' into vulkan
2022-06-25 20:31:26 +03:00
Triang3l
4812b4ba8b
[D3D12] Fix outdated color system constants comment [ci skip]
2022-06-25 20:31:05 +03:00
Triang3l
5dca11a892
[SPIR-V] Fix fetch constant LOD bias signedness
2022-06-25 16:33:35 +03:00
Triang3l
d8b0227cbd
[SPIR-V] Fix cubemap X axis
2022-06-25 16:25:29 +03:00
Triang3l
fdcbf67623
[Vulkan] Enable VK_KHR_sampler_ycbcr_conversion
2022-06-25 15:46:02 +03:00
Triang3l
758db4ccb3
[Vulkan] Fix textures not loaded if using a shader for the first time
2022-06-25 15:15:06 +03:00
Triang3l
4db445c6f9
Merge branch 'master' into vulkan
2022-06-25 15:13:41 +03:00
Triang3l
aa45d7b47d
[D3D12] More descriptive pipeline creation call comment [ci skip]
2022-06-25 15:13:11 +03:00
Triang3l
c37c05d189
[Vulkan] Remove an outdated fullscreen shader comment [ci skip]
2022-06-25 14:35:15 +03:00
Triang3l
4b4205ba00
[Vulkan] Frontbuffer presentation
2022-06-25 14:33:43 +03:00
Triang3l
3fc7d8753c
Merge branch 'master' into vulkan
2022-06-24 23:38:04 +03:00
Triang3l
f4a634c617
[XeSL] xesl_write*Store > xesl_*Store
2022-06-24 23:37:29 +03:00
Triang3l
7a4732e14f
[GPU] XeSL swap shaders
2022-06-24 23:24:30 +03:00
Triang3l
b7737d70ca
[D3D12] Update RequestSwapTexture resource state comment [ci skip]
2022-06-23 22:59:53 +03:00
Triang3l
227d495738
Merge branch 'master' into vulkan
2022-06-22 21:19:29 +03:00
Triang3l
e9f129f67f
[GPU] Safer and more correct depth bias conversion
...
Float24-as-float32 depth bias is now in the increments of 8, because conversion of the depth to float24 directly in the pixel shaders may destroy the bias qualitatively otherwise if it's too small.
2022-06-22 21:14:40 +03:00
Triang3l
a7885ae1a4
[GPU] Fix CPU-side float24 conversion broken recently
2022-06-22 20:47:44 +03:00
Triang3l
4514050f55
[Vulkan] Truncate depth to float24 in EDRAM range ownership transfers and resolves by default
...
Doesn't ruin the "greater or equal" depth test in subsequent rendering passes if precision is lost, unlike rounding to the nearest
2022-06-22 13:25:06 +03:00
Triang3l
0d8bd0e0c6
Merge branch 'master' into vulkan
2022-06-22 13:15:50 +03:00
Triang3l
cbf0476d42
[D3D12] Don't round float24 depth when it's known to be exact
2022-06-22 13:14:38 +03:00
Triang3l
7869b080d3
[D3D12] Truncate depth to float24 in EDRAM range ownership transfers and resolves by default
...
Doesn't ruin the "greater or equal" depth test in subsequent rendering passes if precision is lost, unlike rounding to the nearest
2022-06-22 12:53:09 +03:00
Triang3l
c0703e64db
Merge branch 'master' into vulkan
2022-06-20 22:40:19 +03:00
Triang3l
e2f632f8fa
[D3D12] Use udiv by constant tile size + minor transfer cleanup
...
Drivers compile that to a multiplication and a shift anyway.
2022-06-20 22:39:30 +03:00
Triang3l
0dc480721f
[Vulkan] Render target resolving
2022-06-20 22:29:07 +03:00
Triang3l
c6ec6d8239
[Vulkan] Use UDiv/UMod by constant tile size + minor transfer cleanup
...
Drivers compile that to a multiplication and a shift anyway.
2022-06-20 22:24:07 +03:00
Triang3l
61c4c49d76
Merge branch 'master' into vulkan
2022-06-20 12:34:41 +03:00
Triang3l
207e11c8d2
[GPU] Separate range arguments for fixed16 RG and RGBA in GetResolveInfo
...
On Vulkan, when snorm16 in unsupported, these formats may be emulated as float16, which natively can represent a wide range of numbers including -32 to 32 with blending. However, R16G16_SNORM and R16G16B16A16_SNORM are two separate formats, which may have different support on the device.
2022-06-20 12:29:45 +03:00
Triang3l
3b4845511d
[Vulkan] Don't require an explicit uint64_t cast for SetDeviceObjectName
2022-06-20 12:25:52 +03:00
Triang3l
67ff108f53
[Vulkan] Explain why CreateShaderModule takes uint32_t* [ci skip]
2022-06-20 12:22:41 +03:00
Triang3l
b61953374e
[GPU] Make resolve EDRAM binding DS 0 and rename it
...
Ordering the descriptor sets by the change frequency on Vulkan, in increasing order (the opposite of D3D12 root signatures). The EDRAM binding never changes there (always one storage buffer), while the destination buffer binding may become changeable in the future (to split dispatches if exceeding `maxStorageBufferRange`, for example).
2022-06-20 12:15:52 +03:00
Triang3l
1200b205cf
Merge branch 'master' into vulkan
2022-06-19 17:52:28 +03:00
Triang3l
9b83d3d0f4
[GPU] XeSL resolve shaders + host depth store width fix
2022-06-19 17:50:21 +03:00