91341b421d
Merge pull request #7036 from ameerj/ogl-bgr-v2
...
gl_texture_cache: Unify BGR copy passes using PBOs
2021-09-29 16:10:56 -07:00
22162f906b
host_shaders: Remove opengl_copy_bgra.comp
2021-09-16 19:49:13 -04:00
ab808fe7cf
gl_texture_cache: Migrate BGRCopyPass from util_shaders
...
The BGR copies no longer use shaders.
2021-09-16 19:49:12 -04:00
7f737b022a
util_shaders: Unify BGRA copy passes
2021-09-15 21:10:52 -04:00
2df2b3719a
renderers: Log total pipeline count
2021-09-14 13:18:26 -04:00
4fda7f1c82
structured_control_flow: Conditionally invoke demote reorder pass
...
This is only needed on select drivers when a fragment shader discards/demotes.
2021-08-30 11:46:24 -04:00
6a082df427
Merge pull request #6820 from yzct12345/split-cache
...
texture_cache: Split out template definitions
2021-08-10 12:23:05 +02:00
268b5764c7
Merge pull request #6791 from ameerj/astc-opt
...
astc_decoder: Various performance and memory optimizations
2021-08-06 21:45:24 -07:00
e80323b8b0
texture_cache: Address ameerj's review
2021-08-07 01:27:47 +00:00
02e98f6c93
texture_cache: Don't change copyright year
2021-08-05 20:52:12 +00:00
5566f3dbc0
texture_cache: Address ameerj's review
2021-08-05 20:46:24 +00:00
f9563c8f24
texture_cache: Split templates out
2021-08-05 13:52:30 +00:00
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
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
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
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
075a744e38
gl_shader_cache: Remove unused variable
2021-07-27 06:23:49 -04:00
d6c799494c
Merge pull request #6696 from ameerj/speed-limit-rename
...
general: Rename "Frame Limit" references to "Speed Limit"
2021-07-26 18:51:00 -07:00
98b26b6e12
Merge pull request #6585 from ameerj/hades
...
Shader Decompiler Rewrite
2021-07-25 11:39:04 -07:00
c80ae87b4e
renderer_base: Removed redundant settings
...
use_framelimiter was not being used internally by the renderers.
set_background_color was always set to true as there is no toggle for the renderer background color, instead users directly choose the color of their choice.
2021-07-23 22:10:01 -04:00
3c6d440015
Revert "renderers: Disable async shader compilation"
...
This reverts commit 4a152767286717fa69bfc94846a124a366f70065.
2021-07-22 21:51:40 -04:00
8381490a04
opengl: Fix asynchronous shaders
...
Wait for shader to build before configuring it, and wait for the shader
to build before sharing it with other contexts.
2021-07-22 21:51:40 -04:00
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
56478bc9ac
shader: Fix disabled attribute default values
2021-07-22 21:51:40 -04:00
c9528282d9
gl_device: Simplify GLASM setting logic
2021-07-22 21:51:40 -04:00
e1ed218b41
renderer_opengl: Use ARB_separate_shader_objects
...
Ensures that states set for a particular stage are not attached to other
stages which may not need them.
2021-07-22 21:51:40 -04:00
94af0a00f6
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
2021-07-22 21:51:40 -04:00
8c166c68d4
gl_shader_cache: Properly implement asynchronous shaders
2021-07-22 21:51:40 -04:00
41493fbe89
renderers: Fix clang formatting
2021-07-22 21:51:40 -04:00
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
11f04f1022
shader: Ignore global memory ops on devices lacking int64 support
2021-07-22 21:51:40 -04:00
dbee32d302
gl_shader_cache: Fixes for async shaders
2021-07-22 21:51:40 -04:00
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
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
5643a909bc
shader: Fix disabled and unwritten attributes and varyings
2021-07-22 21:51:39 -04:00
fb9b1787f8
video_core: Enable GL SPIR-V shaders
2021-07-22 21:51:39 -04:00
1152d66ddd
general: Add setting shader_backend
...
GLASM is getting good enough that we can move it out of advanced
graphics settings. This removes the setting `use_assembly_shaders`,
opting for a enum class `shader_backend`. This comes with the benefits
that it is extensible for additional shader backends besides GLSL and
GLASM, and this will work better with a QComboBox.
Qt removes the related assembly shader setting from the Advanced
Graphics section and places it as a new QComboBox in the API Settings
group. This will replace the Vulkan device selector when OpenGL is
selected.
Additionally, mark all of the custom anisotropic filtering settings as
"WILL BREAK THINGS", as that is the case with a select few games.
2021-07-22 21:51:39 -04:00
8a3427a4c8
glasm: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
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
395bed3a0a
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
fb166b5ff4
shader: Emulate 64-bit integers when not supported
...
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
3877918e96
gl_graphics_pipeline: Fix assembly shaders check for transform feedbacks
2021-07-22 21:51:39 -04:00
9bd0531384
gl_graphics_pipeline: Inline hash and operator== key functions
2021-07-22 21:51:39 -04:00
f5db8c7440
gl_shader_cache: Check previous pipeline before checking hash map
...
Port optimization from Vulkan.
2021-07-22 21:51:39 -04:00
218dedca1f
gl_graphics_pipeline: Port optimizations from Vulkan pipelines
2021-07-22 21:51:39 -04:00
fcff19e0fa
shaders: Allow shader notify when async shaders is disabled
2021-07-22 21:51:38 -04:00
374eeda1a3
shader: Properly manage attributes not written from previous stages
2021-07-22 21:51:38 -04:00
0ffea97e2e
shader: Split profile and runtime info headers
2021-07-22 21:51:38 -04:00
cbbca26d18
shader: Add support for native 16-bit floats
2021-07-22 21:51:38 -04:00
376aa94819
shader: Rename maxwell/program.h to translate_program.h
2021-07-22 21:51:38 -04:00