ameerj
3c65c8580f
vk_swapchain: Prefer linear swapchain format when presenting sRGB images
...
Fixes broken sRGB when presenting from a secondary GPU.
2021-08-29 02:03:35 -04:00
ameerj
4d535799eb
vulkan_device: Add a check for int8 support
...
Silences validation errors when shaders use int8 without specifying its support to the API
2021-08-24 21:22:41 -04:00
Fernando S
6a082df427
Merge pull request #6820 from yzct12345/split-cache
...
texture_cache: Split out template definitions
2021-08-10 12:23:05 +02:00
bunnei
268b5764c7
Merge pull request #6791 from ameerj/astc-opt
...
astc_decoder: Various performance and memory optimizations
2021-08-06 21:45:24 -07:00
yzct12345
e80323b8b0
texture_cache: Address ameerj's review
2021-08-07 01:27:47 +00:00
yzct12345
02e98f6c93
texture_cache: Don't change copyright year
2021-08-05 20:52:12 +00:00
yzct12345
5566f3dbc0
texture_cache: Address ameerj's review
2021-08-05 20:46:24 +00:00
yzct12345
f9563c8f24
texture_cache: Split templates out
2021-08-05 13:52:30 +00:00
Fernando S
30f0b7cf31
Merge pull request #6720 from ameerj/vk-screenshot
...
renderer_vulkan: Implement screenshots
2021-08-01 13:31:33 +02:00
Ameer J
db32c3762b
Merge pull request #6765 from ReinUsesLisp/y-negate-vk
...
vk_rasterizer: Flip viewport on Y_NEGATE
2021-08-01 01:47:37 -04:00
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.
2021-08-01 01:22:27 -04:00
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.
2021-08-01 01:22:26 -04:00
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.
2021-07-31 21:36:26 -04:00
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.
2021-07-29 02:17:53 -03:00
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
2021-07-28 21:46:08 -04:00
ameerj
75e7f54fb0
renderer_vulkan: Implement screenshots
2021-07-28 21:45:55 -04:00
ameerj
548bac8989
vk_blit_screen: Add public CreateFramebuffer method
2021-07-28 21:43:02 -04:00
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.
2021-07-28 21:37:30 -04:00
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.
2021-07-27 21:29:24 -03:00
Lioncash
296728ec46
vk_compute_pass: Remove unused captures
...
Resolves two compiler warnings.
2021-07-27 06:17:52 -04:00
Rodrigo Locatti
7511f65e31
Merge pull request #6741 from ReinUsesLisp/stream-remove
...
vk_stream_buffer: Remove unused stream buffer
2021-07-26 20:35:01 -03:00
Rodrigo Locatti
1a94b3f452
Merge pull request #6740 from K0bin/hvv-fallback
...
Handle allocation failure in Staging buffer
2021-07-26 20:34:44 -03:00
Robin Kertels
75050c788c
vk_staging_buffer_pool: Fall back to host memory when allocation fails
2021-07-26 23:37:18 +02:00
Rodrigo Locatti
c6991fa900
Merge pull request #6728 from ReinUsesLisp/null-buffer-usage
...
vk_buffer_cache: Add transform feedback usage to null buffer
2021-07-26 18:30:45 -03:00
ReinUsesLisp
5f9a4817a5
vk_stream_buffer: Remove unused stream buffer
...
Remove unused file.
2021-07-26 18:19:53 -03:00
ReinUsesLisp
771dcb2a56
vk_compute_pass: Fix pipeline barrier for indexed quads
...
Use an index buffer barrier instead of a vertex input read barrier.
2021-07-26 05:51:09 -03:00
ReinUsesLisp
27ed6e7c2b
vk_buffer_cache: Add transform feedback usage to null buffer
...
Fixes bad API usages on Vulkan.
2021-07-26 05:49:37 -03:00
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.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
3c6d440015
Revert "renderers: Disable async shader compilation"
...
This reverts commit 4a152767286717fa69bfc94846a124a366f70065.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
258f35515d
shader_environment: Receive cache version from outside
...
This allows us invalidating OpenGL and Vulkan separately in the future.
2021-07-22 21:51:40 -04:00
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
2021-07-22 21:51:40 -04:00
ameerj
41493fbe89
renderers: Fix clang formatting
2021-07-22 21:51:40 -04:00
ameerj
8390286a89
renderers: Disable async shader compilation
...
The current implementation is prone to causing graphical issues. Disable until a better solution is implemented.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
be54aad1c4
maxwell_to_vk: Add R16_SNORM
2021-07-22 21:51:40 -04:00
ameerj
11f04f1022
shader: Ignore global memory ops on devices lacking int64 support
2021-07-22 21:51:40 -04:00
ReinUsesLisp
8722668b3c
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
...
Fix regression on Fire Emblem: Three Houses when using native fp16.
2021-07-22 21:51:40 -04:00
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.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f94f0be521
vk_graphics_pipeline: Implement smooth lines
2021-07-22 21:51:39 -04:00
ReinUsesLisp
57a8921e01
vk_graphics_pipeline: Implement line width
2021-07-22 21:51:39 -04:00
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.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
4f052a1f39
vk_graphics_pipeline: Implement conservative rendering
2021-07-22 21:51:39 -04:00
ReinUsesLisp
395bed3a0a
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
ReinUsesLisp
fb166b5ff4
shader: Emulate 64-bit integers when not supported
...
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f5db8c7440
gl_shader_cache: Check previous pipeline before checking hash map
...
Port optimization from Vulkan.
2021-07-22 21:51:39 -04:00
ameerj
fcff19e0fa
shaders: Allow shader notify when async shaders is disabled
2021-07-22 21:51:38 -04:00
ReinUsesLisp
ca67077ca8
vk_graphics_pipeline: Use VK_KHR_push_descriptor when available
...
~51% faster on Nvidia compared to previous method.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
374eeda1a3
shader: Properly manage attributes not written from previous stages
2021-07-22 21:51:38 -04:00
ReinUsesLisp
cbbca26d18
shader: Add support for native 16-bit floats
2021-07-22 21:51:38 -04:00
ReinUsesLisp
376aa94819
shader: Rename maxwell/program.h to translate_program.h
2021-07-22 21:51:38 -04:00
ReinUsesLisp
8fb2048934
vk_rasterizer: Exit render passes on fragment barriers
2021-07-22 21:51:35 -04:00