ameerj
73666fb262
general: Update style to clang-format-12
5 years ago
ameerj
84f7e7e91c
vk_scheduler: Use std::jthread
5 years ago
Morph
2df2b3719a
renderers: Log total pipeline count
5 years ago
Fernando Sahmkow
e7ca37b1e5
Vulkan/Descriptors: Increase sets per pool on AMFD propietary driver.
5 years ago
ameerj
35e5a67a83
vk_swapchain: Use immediate present mode when mailbox is unavailable and FPS is unlocked
Allows drivers that do not support VK_PRESENT_MODE_MAILBOX_KHR the ability to present at a framerate higher than the monitor's refresh rate when the FPS is unlocked.
5 years ago
ameerj
678f73069f
vk_rasterizer: Fix dynamic StencilOp updating when two faces are enabled
This function was incorrectly using the stencil_two_side_enable register when dynamically updating the StencilOp.
5 years ago
ameerj
8e289ade15
vk_state_tracker: Remove unused function
5 years ago
Morph
63b4c8f9f7
vk_descriptor_pool: Add missing <algorithm> include
5 years ago
ameerj
7d854fbdb0
renderer_vulkan: Wait on present semaphore at queue submit
The present semaphore is being signalled by the call to acquire the
swapchain image. This semaphore is meant to be waited on when rendering
to the swapchain image. Currently it is waited on when presenting, but
moving its usage to be waited on in the command buffer submission allows
for proper usage of this semaphore.
Fixes the device lost when launching titles on the Intel Linux Mesa driver.
5 years ago
ameerj
4fda7f1c82
structured_control_flow: Conditionally invoke demote reorder pass
This is only needed on select drivers when a fragment shader discards/demotes.
5 years ago
ameerj
27f8f3333f
vulkan_device: Enable VK_KHR_swapchain_mutable_format if available
Silences validation errors when creating sRGB image views of linear swapchain images
5 years ago
ameerj
3c65c8580f
vk_swapchain: Prefer linear swapchain format when presenting sRGB images
Fixes broken sRGB when presenting from a secondary GPU.
5 years ago
ameerj
4d535799eb
vulkan_device: Add a check for int8 support
Silences validation errors when shaders use int8 without specifying its support to the API
5 years ago
ameerj
e0397f00d0
vk_rasterizer: Only clear depth and stencil buffers when set in attachment aspect mask
Silences validation errors for clearing the depth/stencil buffers of framebuffer attachments that were not specified to have depth/stencil usage.
5 years ago
ameerj
537c6ac8fe
vk_blit_screen: Fix non-accelerated texture size calculation
Addresses the potential OOB access in UnswizzleTexture.
5 years ago
yzct12345
e80323b8b0
texture_cache: Address ameerj's review
5 years ago
yzct12345
02e98f6c93
texture_cache: Don't change copyright year
5 years ago
yzct12345
5566f3dbc0
texture_cache: Address ameerj's review
5 years ago
yzct12345
f9563c8f24
texture_cache: Split templates out
5 years ago
ameerj
c439fc9be9
astc_decoder: Reduce workgroup size
This reduces the amount of over dispatching when there are odd dimensions (i.e. ASTC 8x5), which rarely evenly divide into 32x32.
5 years ago
ameerj
5ab8053511
astc_decoder: Compute offset swizzles in-shader
Alleviates the dependency on the swizzle table and a uniform which is constant for all ASTC texture sizes.
5 years ago
ameerj
5665d05547
astc_decoder: Optimize the use EncodingData
This buffer was a list of EncodingData structures sorted by their bit length, with some duplication from the cpu decoder implementation.
We can take advantage of its sorted property to optimize its usage in the shader.
Thanks to wwylele for the optimization idea.
5 years ago
ReinUsesLisp
b185567a03
vk_rasterizer: Flip viewport on Y_NEGATE
Matches OpenGL's behavior. I don't believe this register flips geometry,
but we have to try to match behavior on both backends.
5 years ago
ameerj
7ac99bb127
renderers: Add explicit invert_y bool to screenshot callback
OpenGL and Vulkan images render in different coordinate systems. This allows us to specify the coordinate system of the screenshot within each renderer
5 years ago
ameerj
75e7f54fb0
renderer_vulkan: Implement screenshots
5 years ago
ameerj
548bac8989
vk_blit_screen: Add public CreateFramebuffer method
5 years ago
ameerj
1e6c5d323d
vk_blit_screen: Make Draw method more generic
Allows specifying the framebuffer and render area dimensions, rather than being hard coded for the render window.
5 years ago
ReinUsesLisp
3b006f4fe2
renderer_vulkan: Add setting to log pipeline statistics
Use VK_KHR_pipeline_executable_properties when enabled and available to
log statistics about the pipeline cache in a game.
For example, this is on Turing GPUs when generating a pipeline cache
from Super Smash Bros. Ultimate:
Average pipeline statistics
==========================================
Code size: 6433.167
Register count: 32.939
More advanced results could be presented, at the moment it's just an
average of all 3D and compute pipelines.
5 years ago
Lioncash
296728ec46
vk_compute_pass: Remove unused captures
Resolves two compiler warnings.
5 years ago
Robin Kertels
75050c788c
vk_staging_buffer_pool: Fall back to host memory when allocation fails
5 years ago
ReinUsesLisp
5f9a4817a5
vk_stream_buffer: Remove unused stream buffer
Remove unused file.
5 years ago
ReinUsesLisp
771dcb2a56
vk_compute_pass: Fix pipeline barrier for indexed quads
Use an index buffer barrier instead of a vertex input read barrier.
5 years ago
ReinUsesLisp
27ed6e7c2b
vk_buffer_cache: Add transform feedback usage to null buffer
Fixes bad API usages on Vulkan.
5 years ago
ReinUsesLisp
a55ff22900
vulkan/blit_image: Commit descriptor sets within worker thread
Fixes race condition caused. The descriptor pool is not thread safe, so
we have to commit descriptor sets within the same thread.
5 years ago
ReinUsesLisp
3c6d440015
Revert "renderers: Disable async shader compilation"
This reverts commit 4a15276728 .
5 years ago
ReinUsesLisp
258f35515d
shader_environment: Receive cache version from outside
This allows us invalidating OpenGL and Vulkan separately in the future.
5 years ago
lat9nq
49946cf780
shader_recompiler, video_core: Resolve clang errors
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
5 years ago
ameerj
41493fbe89
renderers: Fix clang formatting
5 years ago
ameerj
8390286a89
renderers: Disable async shader compilation
The current implementation is prone to causing graphical issues. Disable until a better solution is implemented.
5 years ago
ReinUsesLisp
be54aad1c4
maxwell_to_vk: Add R16_SNORM
5 years ago
ameerj
11f04f1022
shader: Ignore global memory ops on devices lacking int64 support
5 years ago
ReinUsesLisp
8722668b3c
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
5 years ago
ReinUsesLisp
fba6bd92d4
vk_rasterizer: Workaround bug in VK_EXT_vertex_input_dynamic_state
Workaround potential bug on Nvidia's driver where only updating high
attributes leaves low attributes out dated.
5 years ago
ReinUsesLisp
f94f0be521
vk_graphics_pipeline: Implement smooth lines
5 years ago
ReinUsesLisp
57a8921e01
vk_graphics_pipeline: Implement line width
5 years ago
ReinUsesLisp
7dafa96ab5
shader: Rework varyings and implement passthrough geometry shaders
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
5 years ago
ReinUsesLisp
4f052a1f39
vk_graphics_pipeline: Implement conservative rendering
5 years ago
ReinUsesLisp
395bed3a0a
shader: Unify shader stage types
5 years ago
ReinUsesLisp
fb166b5ff4
shader: Emulate 64-bit integers when not supported
Useful for mobile and Intel Xe devices.
5 years ago
ReinUsesLisp
f5db8c7440
gl_shader_cache: Check previous pipeline before checking hash map
Port optimization from Vulkan.
5 years ago