f45f7b5c2a
vk_swapchain: Handle outdated swapchains
...
Fixes pixelated presentation on Intel devices.
2021-07-22 21:51:34 -04:00
562af30181
shader: Fix VertexA Shaders.
2021-07-22 21:51:34 -04:00
ec9a78885e
shader: Add 2D and 3D variants to SUATOM and SURED
...
Used by Claybook.
2021-07-22 21:51:34 -04:00
b02c78b276
vk_buffer_cache: Handle null texture buffers
...
Fixes a crash on Age of Calamity cutscenes.
2021-07-22 21:51:34 -04:00
8f099af6a8
nsight_aftermath_tracker: Fix SPIR-V module writes
2021-07-22 21:51:34 -04:00
8c954fcaee
vk_pipeline_cache: Set support_derivative_control to true
2021-07-22 21:51:34 -04:00
4f8b68fb04
shader: Avoid CPU side undefined behavior on I2F
2021-07-22 21:51:34 -04:00
79f2fe1a39
glasm: Use ARB_derivative_control conditionally
2021-07-22 21:51:34 -04:00
4a2361a1e2
buffer_cache: Reduce uniform buffer size from shader usage
...
Increases performance significantly on certain titles.
2021-07-22 21:51:34 -04:00
e57ee3b7fd
transform_feedback: Read buffer stride from index instead of layout
2021-07-22 21:51:34 -04:00
46bd362d0d
fixed_pipeline_state: Use regular for loop instead of ranges for perf
...
MSVC generates better code for it.
2021-07-22 21:51:34 -04:00
d26271b014
vk_swapchain: Avoid recreating the swapchain on each frame
...
Recreate only when requested (or sRGB is changed) instead of tracking
the frontend's size. That size is still used as a hint.
2021-07-22 21:51:34 -04:00
22f0c4f002
emit_glasm_context_get_set: Remove unused variable
2021-07-22 21:51:34 -04:00
5539b13c5a
shader,glasm: Implement legacy texcoord loads
2021-07-22 21:51:34 -04:00
cf9f88e5a7
glasm: Implement legacy varyings
2021-07-22 21:51:34 -04:00
ac0f5d2ab6
shader: Track legacy varyings
2021-07-22 21:51:34 -04:00
05d41fa9b7
shader: Add support for "negative" and unaligned offsets
...
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.
Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
2021-07-22 21:51:34 -04:00
5d170de0b5
shader: Implement ISCADD32I
2021-07-22 21:51:34 -04:00
adc43297c5
spirv: Fix output generics with components
2021-07-22 21:51:34 -04:00
1148a4eac7
vulkan: Conditionally use shaderInt16
...
Add support for Polaris AMD devices.
2021-07-22 21:51:34 -04:00
77372443c3
vulkan: Enable depth bounds and use it conditionally
...
Intel devices pre-Xe don't support this.
2021-07-22 21:51:34 -04:00
c44b16124f
vk_buffer_cache: Add transform feedback usage to buffers
2021-07-22 21:51:34 -04:00
916ca74324
opengl: Declare fragment outputs even if they are not used
...
Fixes Ori and the Blind Forest's menu on GLASM. For some reason
(probably high level optimizations) it is not sanitized on SPIR-V for
OpenGL. Vulkan is unaffected by this change.
2021-07-22 21:51:34 -04:00
a7e9756671
buffer_cache: Mark uniform buffers as dirty if any enable bit changes
2021-07-22 21:51:34 -04:00
329dea217d
shader: Always initialize up reference in structure control flow
...
Fixes ubsan issue.
2021-07-22 21:51:34 -04:00
99f2c31b64
vulkan_device: Enable float64 and int64 conditionally
...
Add Intel Xe support.
2021-07-22 21:51:34 -04:00
d093522fac
shader: Fix ImageWrite indexing
2021-07-22 21:51:34 -04:00
d738ad4d0b
spirv: Fix image and image buffer descriptor index usage
2021-07-22 21:51:34 -04:00
eb8464cb3d
glasm: Fix immediate texture coordinate
2021-07-22 21:51:34 -04:00
457dda69cc
shader: Clang-format secondary textures
2021-07-22 21:51:34 -04:00
627161c38e
shader: Fix secondary textures
2021-07-22 21:51:34 -04:00
dd39b87b0c
shader: Adhere to disk shader cache setting
2021-07-22 21:51:34 -04:00
b659212dbd
shader: Fix TMML queries
2021-07-22 21:51:34 -04:00
fbf5cdcba0
shader: Fix FSwizzleAdd folding when going through phi nodes
2021-07-22 21:51:34 -04:00
871c9f1ced
shader/exception: Fix compilation errors on gcc
2021-07-22 21:51:34 -04:00
b6c087496b
glasm: Reduce reg allocation leaks from an exception to a log
2021-07-22 21:51:34 -04:00
56d4a9ebde
texture_cache: Reduce invalid image/sampler error severity
2021-07-22 21:51:34 -04:00
b7764c3a79
shader: Handle host exceptions
2021-07-22 21:51:34 -04:00
83db7abae6
glasm: Use integer lod for TXQ
2021-07-22 21:51:33 -04:00
3b595fe8b2
glasm: Prepare XFB from state instead of global registers
2021-07-22 21:51:33 -04:00
e240a62017
glasm: Fix global memory fallbacks
2021-07-22 21:51:33 -04:00
8f3043c3cf
Revert "glasm: Skip phi moves on undefined instructions"
...
Causes regressions on Bowser's Fury.
2021-07-22 21:51:33 -04:00
2aa30353b7
glasm: Remove unintentional '\n' on Undef32
2021-07-22 21:51:33 -04:00
adb591a757
glasm: Use storage buffers instead of global memory when possible
2021-07-22 21:51:33 -04:00
f58f79c85d
glasm: Implement Y direction
2021-07-22 21:51:33 -04:00
586c785366
glasm: Skip phi moves on undefined instructions
2021-07-22 21:51:33 -04:00
b9c8814ea9
glasm: Implement undef instructions
2021-07-22 21:51:33 -04:00
8763cc1ff7
glasm: Fix global memory callbacks
2021-07-22 21:51:33 -04:00
a41b2ed391
gl_shader_cache: Add disk shader cache
2021-07-22 21:51:33 -04:00
a49532c8eb
video_core,shader: Clang-format fixes
2021-07-22 21:51:33 -04:00