ameerj
01b566101b
main: Fix screenshot filepath construction
...
The screenshot directory path returned does not have a trailing directory separator character. This caused screenshots to be saved in the parent directory of the configured screenshot directory.
This fixes that behavior
2021-07-25 14:24:08 -04:00
bunnei
1c2599a130
Merge pull request #6699 from lat9nq/common-threads
...
common: Publically link to pthreads
2021-07-25 10:43:11 -07:00
bunnei
c47035538f
Merge pull request #6690 from ReinUsesLisp/dma-clear-fixups
...
buffer_cache: Misc fixups related to buffer clears
2021-07-24 01:27:50 -04:00
ameerj
2fef43b32a
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
ameerj
aeff61a0cc
general: Rename "Frame Limit" references to "Speed Limit"
...
This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate.
This allows us to differentiate it from the fps unlocker setting.
2021-07-23 22:10:01 -04:00
ameerj
8c0d6af843
config, nvflinger: Add FPS cap setting
...
Allows finer tuning of the FPS limit.
2021-07-23 22:04:36 -04:00
bunnei
3cc092849c
Merge pull request #6551 from bunnei/improve-kernel-obj
...
Improve management of kernel objects
2021-07-23 21:23:56 -04:00
lat9nq
f70155db64
configuration: Use combobox apply template where possible
...
We don't need to manually apply this setting now that a template can do
this for us.
2021-07-23 10:18:07 -04:00
lat9nq
4b02e2b489
general: Implement FullscreenMode enumeration
...
Prevents us from using an unclear 0 or 1 to describe the fullscreen
mode.
2021-07-23 10:14:37 -04:00
lat9nq
0ea70212af
common: Publically link to pthreads
...
Common requires pthreads but does not refer to it when linking to other
modules. Fix this by linking to Threads where necessary.
2021-07-23 09:47:52 -04:00
ReinUsesLisp
ba89444667
shader: Support out of bound local memory reads and immediate writes
...
Support ignoring immediate out of bound writes. Writing dynamically out
of bounds is not yet supported (e.g. R0+0x4).
Reading out of bounds yields zero. This is supported checking for the
size from the IR; if the input is immediate, the optimization passes
will drop it.
2021-07-22 21:51:41 -04:00
ReinUsesLisp
7efec6bce4
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
6c7f6e1228
vulkan_device: Blacklist Volta and older from VK_KHR_push_descriptor
...
Causes crashes on Link's Awakening intro. It's hard to debug if it's our
fault due to bugs in validation layers.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
4ae6c023df
qt: Remove "experimental" from asynchronous shader building UI
2021-07-22 21:51:40 -04:00
ReinUsesLisp
c29f2c9507
Revert "renderers: Disable async shader compilation"
...
This reverts commit 4a152767286717fa69bfc94846a124a366f70065.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
8a74a2c895
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
ReinUsesLisp
a97c0ccabd
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
ReinUsesLisp
2e6acac647
cmake: Remove shader cache version
2021-07-22 21:51:40 -04:00
ameerj
3927809a63
shader: Fix disabled attribute default values
2021-07-22 21:51:40 -04:00
ameerj
a7fe20e636
gl_device: Simplify GLASM setting logic
2021-07-22 21:51:40 -04:00
ameerj
e6d3a301f2
glsl: Simplify FCMP emission
2021-07-22 21:51:40 -04:00
ameerj
4f3e869dd0
glsl: Update TessellationControl gl_in
...
Adheres to GL_ARB_separate_shader_objects requirements
2021-07-22 21:51:40 -04:00
ReinUsesLisp
4f84ef1f2b
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
ameerj
ffe72f8d37
shader: Implement ISETP.X
2021-07-22 21:51:40 -04:00
ReinUsesLisp
2321666580
shader: Avoid usage of C++20 ranges to build in clang
2021-07-22 21:51:40 -04:00
ameerj
a23f05c215
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
2021-07-22 21:51:40 -04:00
ReinUsesLisp
ac0c2f8edc
gl_shader_cache: Properly implement asynchronous shaders
2021-07-22 21:51:40 -04:00
lat9nq
b557314001
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
779288c071
main: Update Shader Cache menu options
...
This change adds two new context menu items to remove either the OpenGL or the Vulkan shader caches individually, and the provides the option to remove all caches for the selected title.
This also changes the behavior of the open shader cache option. Now it creates the shader cache directory for the title if it does not yet exist.
2021-07-22 21:51:40 -04:00
ameerj
2cde6c5708
renderers: Fix clang formatting
2021-07-22 21:51:40 -04:00
ReinUsesLisp
cdb3837085
shader: Manually convert from array<u32> to bitset instead of using bit_cast
2021-07-22 21:51:40 -04:00
ameerj
e45e458b17
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
b654537f0f
maxwell_to_vk: Add R16_SNORM
2021-07-22 21:51:40 -04:00
lat9nq
df62bcd9cb
configure_graphics: Mark SPIR-V as Experimental, Mesa only
2021-07-22 21:51:40 -04:00
ameerj
f2f16e3a1d
glsl: Fix tracking of info.uses_shadow_lod
2021-07-22 21:51:40 -04:00
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
2021-07-22 21:51:40 -04:00
lat9nq
52f2fe7b52
vulkan_device: Add missing include algorithm
2021-07-22 21:51:40 -04:00
ameerj
d965b7200a
vulkan_device: Blacklist ampere devices from float16 math
2021-07-22 21:51:40 -04:00
ameerj
d54c4880d1
dual_vertex_pass: Clang format
2021-07-22 21:51:40 -04:00
ameerj
472f9fcb18
gl_shader_cache: Fixes for async shaders
2021-07-22 21:51:40 -04:00
ReinUsesLisp
e8d458a81d
vulkan_device: Enable VK_EXT_extended_dynamic_state on RADV 21.2 onward
2021-07-22 21:51:40 -04:00
ReinUsesLisp
ff35ef8ec1
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
lat9nq
84bc5be7a1
configure_graphics: Re-order vulkan device populating
2021-07-22 21:51:40 -04:00
lat9nq
c969f6e678
shader: GCC fmt 8.0.0 fixes
2021-07-22 21:51:40 -04:00
ameerj
79e317ad7d
shader: Account for 33-bit IADD3 scenario
2021-07-22 21:51:40 -04:00
ReinUsesLisp
611797a7c6
shader: Only apply shift on register mode for IADD3
2021-07-22 21:51:39 -04:00
ReinUsesLisp
934b23ab85
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
b48b4b0600
shader: Fix disabled and unwritten attributes and varyings
2021-07-22 21:51:39 -04:00
ameerj
d77dc5919c
glsl: Fix shared and local memory declarations
...
account for the fact that program.*memory_size is in units of bytes.
2021-07-22 21:51:39 -04:00
ameerj
33d21ac2db
opengl: Implement LOP.CC
...
Used by MH:Rise
2021-07-22 21:51:39 -04:00
ReinUsesLisp
1c7c65087d
vk_graphics_pipeline: Implement smooth lines
2021-07-22 21:51:39 -04:00
ReinUsesLisp
bd0796d52f
vk_graphics_pipeline: Implement line width
2021-07-22 21:51:39 -04:00
ReinUsesLisp
7dc8577529
spirv: Fix code emission when descriptor aliasing is unsupported
...
Fixes OpenGL.
2021-07-22 21:51:39 -04:00
lat9nq
5443d4bd9c
video_core: Enable GL SPIR-V shaders
2021-07-22 21:51:39 -04:00
lat9nq
ddd4720fe4
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
ameerj
c446ada33e
glsl: Declare local memory in main
2021-07-22 21:51:39 -04:00
ameerj
0810714e46
glsl: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
41b2a991c4
shader: Use std::bit_cast instead of Common::BitCast for passthrough
2021-07-22 21:51:39 -04:00
ReinUsesLisp
362888dcb0
glasm: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
b1df436cef
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
649c9cca0f
vk_graphics_pipeline: Implement conservative rendering
2021-07-22 21:51:39 -04:00
ReinUsesLisp
6db3ba6542
shader: Only verify shader when graphics debugging is enabled
2021-07-22 21:51:39 -04:00
ReinUsesLisp
c0705f79b8
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
lat9nq
0f092f17af
lower_int64_to_int32: Add missing include
2021-07-22 21:51:39 -04:00
ReinUsesLisp
0a75c400e3
shader: Emulate 64-bit integers when not supported
...
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
e3df2285ca
shader: Add int64 to int32 lowering pass
2021-07-22 21:51:39 -04:00
ReinUsesLisp
ba211323ab
shader: Teach global memory base tracker to follow vectors
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f54fa4a1f5
shader: Add constant propagation to integer vectors
2021-07-22 21:51:39 -04:00
ameerj
99e8164b43
glsl: Better IAdd Overflow CC fix
...
This ensures the original operand values are not overwritten when being used in the overflow detection.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f158fe9359
shader: Remove IAbs64
2021-07-22 21:51:39 -04:00
ameerj
516c17d4d3
glsl: Fix IADD CC
2021-07-22 21:51:39 -04:00
ameerj
58a052072c
shader_recompiler: Fix IADD3 input partitioning
2021-07-22 21:51:39 -04:00
ReinUsesLisp
04c1dca457
shader: Move loop safety tests to code emission
2021-07-22 21:51:39 -04:00
ReinUsesLisp
e57f54e582
gl_graphics_pipeline: Fix assembly shaders check for transform feedbacks
2021-07-22 21:51:39 -04:00
ameerj
abade15f5e
glsl: Remove frag color initialization
2021-07-22 21:51:39 -04:00
ameerj
1d99187d4c
glasm: Implement SetAttribute ViewportMask
2021-07-22 21:51:39 -04:00
ReinUsesLisp
2cff04fab9
gl_graphics_pipeline: Inline hash and operator== key functions
2021-07-22 21:51:39 -04:00
ReinUsesLisp
97cfedab70
gl_shader_cache: Check previous pipeline before checking hash map
...
Port optimization from Vulkan.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
40402f3947
gl_graphics_pipeline: Port optimizations from Vulkan pipelines
2021-07-22 21:51:39 -04:00
ameerj
b79424c3bf
emit_glsl_special: Skip initialization of frag_color0
...
Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
d633ec4ecc
shader: Calibrate loop safety threshold
2021-07-22 21:51:38 -04:00
ReinUsesLisp
2cd96376b5
buffer_cache: Fix debugging leftover
2021-07-22 21:51:38 -04:00
Morph
6e8400f165
glsl: Add missing ; in EmitSetSampleMask
...
Fixes shader compilation in Okami HD
2021-07-22 21:51:38 -04:00
ReinUsesLisp
b7cf8e0de4
buffer_cache: Fix size reductions not having in mind bind sizes
...
A buffer binding can change between shaders without changing the
shaders. This lead to outdated bindings on OpenGL.
2021-07-22 21:51:38 -04:00
ameerj
7d20cd7656
glsl: Fix output varying initialization when transform feedback is used
2021-07-22 21:51:38 -04:00
ameerj
c7921c7812
shaders: Allow shader notify when async shaders is disabled
2021-07-22 21:51:38 -04:00
ameerj
633c54a202
texture_pass: Fix is_read image qualification
...
Atomic operations are considered to have both read and write access. This was not being accounted for.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
9c387a270b
shader: Align constant buffer sizes to 16 bytes
...
WAR for AMD reading zeroes on uniform buffers of size 2.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
10f91c42e2
spirv: Properly handle devices without int8 and int16
2021-07-22 21:51:38 -04:00
ReinUsesLisp
fe5fc478e7
spirv: Handle small storage buffer loads on devices with no support
2021-07-22 21:51:38 -04:00
ReinUsesLisp
b3bf0d4ebb
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
ameerj
45c91da369
glsl: Fix cbuf component indexing bug falback
2021-07-22 21:51:38 -04:00
ReinUsesLisp
16d28031e7
shader: Simplify MergeDualVertexPrograms
2021-07-22 21:51:38 -04:00
ReinUsesLisp
c4a71824d5
shader: Properly manage attributes not written from previous stages
2021-07-22 21:51:38 -04:00
ReinUsesLisp
ebd1146ea7
glsl: Only declare fragment outputs on fragment shaders
2021-07-22 21:51:38 -04:00
ReinUsesLisp
9389e71b12
shader: Split profile and runtime info headers
2021-07-22 21:51:38 -04:00
ReinUsesLisp
52be21495e
shader: Add support for native 16-bit floats
2021-07-22 21:51:38 -04:00
ReinUsesLisp
41c634a7a9
shader: Rename maxwell/program.h to translate_program.h
2021-07-22 21:51:38 -04:00
ReinUsesLisp
a9a5f5b535
vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on Intel
2021-07-22 21:51:38 -04:00
ameerj
7a9b23ea70
glsl: Obey need_declared_frag_colors to declare and initialize all frag_color
...
Fixes Ori and the blind forest title screen
2021-07-22 21:51:38 -04:00
ameerj
1d2c13fd7b
glsl: Address rest of feedback
2021-07-22 21:51:38 -04:00
ameerj
52bd1d7788
glsl: Move gl_Position/generic attribute initialization to EmitProlgue
2021-07-22 21:51:38 -04:00
ameerj
bc50a9ef20
glsl: Conditionally use fine/coarse derivatives based on device support
2021-07-22 21:51:38 -04:00
ameerj
4e73fdbd0f
glsl: Cleanup/Address feedback
2021-07-22 21:51:38 -04:00
ameerj
7e661303d5
gl_shader_cache: Implement async shaders
2021-07-22 21:51:38 -04:00
ameerj
d344489b5b
glsl: Add Shader_GLSL logging
2021-07-22 21:51:38 -04:00
ameerj
c44b3f664d
glsl: Add LoopSafety instructions
2021-07-22 21:51:38 -04:00
ameerj
50e1ced397
glsl: Conditionally add EXT_texture_shadow_lod
2021-07-22 21:51:38 -04:00
ameerj
b33af69513
glsl: Add stubs for sparse queries and variable aoffi when not supported
2021-07-22 21:51:38 -04:00
ameerj
3e6f89f964
glsl: Implement legacy varyings
2021-07-22 21:51:38 -04:00
ameerj
18aae22ad2
gl_shader_cache: Remove const from pipeline source arguments
2021-07-22 21:51:38 -04:00
ameerj
07a59e1404
gl_shader_cache: Move OGL shader compilation to the respective Pipeline constructor
2021-07-22 21:51:38 -04:00
ameerj
67cc50be47
glsl: Minor cleanup
2021-07-22 21:51:38 -04:00
ameerj
5e9b073176
glsl: Fix Cbuf getters for F32 type
2021-07-22 21:51:38 -04:00
ameerj
152f718017
glsl: Add immediate index oob checking for Cbuf getters
2021-07-22 21:51:38 -04:00
ameerj
163ce47cb1
glsl: Refactor GetCbuf functions to reduce code duplication
2021-07-22 21:51:38 -04:00
ameerj
7bf5c1164e
glsl: Address more feedback. Implement indexed texture reads
2021-07-22 21:51:38 -04:00
ameerj
73278ba985
glsl: Remove Signed Integer variables
2021-07-22 21:51:38 -04:00
ameerj
5d2cd1551f
glsl: Address Rodrigo's feedback
2021-07-22 21:51:38 -04:00
ameerj
8ab7780015
glsl: Reorganize backend code, remove unneeded [[maybe_unused]]
2021-07-22 21:51:37 -04:00
ameerj
b247baab26
glsl: Implement SampleId and SetSampleMask
...
plus some minor refactoring of implementations
2021-07-22 21:51:37 -04:00
ameerj
a2f864493b
glsl: Add gl_PerVertex in for GS
2021-07-22 21:51:37 -04:00
ameerj
5eb36b0913
glsl: Use existing tracking for enabling EXT_shader_image_load_formatted
2021-07-22 21:51:37 -04:00
ameerj
42ac60591e
glsl: Enable early fragment tests
2021-07-22 21:51:37 -04:00
ameerj
3ad05ecd4e
gl_rasterizer: Add texture fetch barrier for fragments
...
Fixes flicker seen in XC2
2021-07-22 21:51:37 -04:00
ameerj
95aedb5258
glsl: Implement more attribute getters and setters
2021-07-22 21:51:37 -04:00
ameerj
656de6639c
glsl: Implement fswzadd
...
and wip nv thread shuffle impl
2021-07-22 21:51:37 -04:00
ameerj
ccd4becb79
glsl: Implement indexed attribute loads
2021-07-22 21:51:37 -04:00
ameerj
819ae85298
glsl: Conditionally add GL_ARB_sparse_texture2
2021-07-22 21:51:37 -04:00
ameerj
c800b9bf92
glsl: Rebase fixes
2021-07-22 21:51:37 -04:00
ameerj
5292962d7e
glsl: Conditionally use GL_EXT_shader_image_load_formatted
...
Fix for SULD.D
2021-07-22 21:51:37 -04:00
ameerj
6e4ed00e8d
glsl: Remove output generic indexing for geometry stage
2021-07-22 21:51:37 -04:00
ameerj
3319879b23
glsl: Allow dynamic tracking of variable allocation
2021-07-22 21:51:37 -04:00
ameerj
1017c12427
glsl: Implement barriers
2021-07-22 21:51:37 -04:00
ameerj
b3a46a3746
glsl: Implement image atomics and set layer
...
along with some more cleanup/oversight fixes
2021-07-22 21:51:37 -04:00
ameerj
d01344c008
glsl: Fix image gather logic
2021-07-22 21:51:37 -04:00
ameerj
fd55ca9828
glsl: Add cbuf access workaround for devices with component indexing bug
2021-07-22 21:51:37 -04:00
ameerj
8c9d420fa5
glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported
2021-07-22 21:51:37 -04:00
ameerj
f56a276e79
emit_glsl_image: Use immediate offsets when possible
2021-07-22 21:51:37 -04:00
ameerj
8894af7c06
glsl: Fix <32-bit SSBO writes
...
and more cleanup
2021-07-22 21:51:37 -04:00
ameerj
4534294b7b
glsl: Cleanup and address feedback
2021-07-22 21:51:37 -04:00
ameerj
bef3820fb0
glsl: Refactor Global memory functions
2021-07-22 21:51:37 -04:00
ameerj
dfa7abe1e7
glsl: Increase NUM_VARS that can be allocated
...
needed for HW:AoC.
2021-07-22 21:51:37 -04:00
ameerj
2e8da9d3be
glsl: Implement Load/WriteGlobal
...
along with some other misc changes and fixes
2021-07-22 21:51:37 -04:00
ameerj
d19a49485a
glsl: Implement Images
2021-07-22 21:51:37 -04:00
ameerj
0c162d8b17
glsl: skip gl_ViewportIndex write if device does not support it
2021-07-22 21:51:37 -04:00
ameerj
f54240823c
glsl: Implement transform feedback
2021-07-22 21:51:37 -04:00
ameerj
922ea01123
glsl: Yet another gl_ViewportIndex fix attempt
2021-07-22 21:51:37 -04:00
ameerj
1736a7e162
glsl: Add gl_ViewportIndex out attribute
2021-07-22 21:51:37 -04:00
lat9nq
503159f29b
emit_glsl_context_get_set: Remove unused function
2021-07-22 21:51:37 -04:00
ameerj
363e228778
glsl: Fix precise variable declaration
...
and add some more separation in the shader for better debugability when dumped
2021-07-22 21:51:37 -04:00
ameerj
e866cece98
glsl: Implement tessellation shaders
2021-07-22 21:51:37 -04:00
ameerj
5c73bf453c
glsl: Implement ImageGradient and other texture function variants
2021-07-22 21:51:37 -04:00
ameerj
8d8c104d4f
glsl: Fix atomic SSBO offsets
...
and implement misc getters
2021-07-22 21:51:37 -04:00
ameerj
7374a8bf1d
glsl: Implement geometry shaders
2021-07-22 21:51:37 -04:00
ameerj
43426d170c
glsl: Use NotImplemented macro with function name output
2021-07-22 21:51:37 -04:00
ameerj
aa06d8fa05
glsl: Implement gl_ViewportIndex
...
SSBU now working
2021-07-22 21:51:37 -04:00
ameerj
badacf0a7e
glsl: SHFL fix and prefer shift operations over divide in glsl shader
2021-07-22 21:51:37 -04:00
ameerj
00105f0615
glsl: Implement precise fp variable allocation
2021-07-22 21:51:37 -04:00
ameerj
1cc3be2135
HACK glsl: Write defaults to unused generic attributes
2021-07-22 21:51:37 -04:00
ameerj
12b9b923e1
glsl: Fix ssbo indexing and name shadowing between shader stages
2021-07-22 21:51:37 -04:00
ameerj
c6615e9d05
glsl: implement set clip distance
...
and missed a diff in emit_glsl relating to var alloc ref counting
2021-07-22 21:51:37 -04:00
ameerj
33f63cdc22
glsl: Rework var alloc to not assign unused results
2021-07-22 21:51:37 -04:00
ameerj
8185a5ab34
glsl: Rework variable allocator to allow for variable reuse
2021-07-22 21:51:37 -04:00
ameerj
748e56e8a2
glsl: Fix ATOM and implement ATOMS
2021-07-22 21:51:37 -04:00
ameerj
f91616b31a
glsl: Use gl_SubGroupInvocationARB
2021-07-22 21:51:36 -04:00
ameerj
ee44e94932
glsl: Implement VOTE for subgroup size potentially larger
2021-07-22 21:51:36 -04:00
ameerj
5a3864d8c4
glsl: Implement VOTE
2021-07-22 21:51:36 -04:00
ameerj
1e59e72a48
glsl: Implement ST{LS}
2021-07-22 21:51:36 -04:00
ameerj
d7213c862e
glsl: Implement more instructions used by SMO
2021-07-22 21:51:36 -04:00
ameerj
3795c56db6
glsl: Implement more instructions used by SMO
2021-07-22 21:51:36 -04:00
ameerj
26649eb889
glsl: Fix GetAttribute return values
...
fixes font rendering issues as these were used to index into the ssbos
2021-07-22 21:51:36 -04:00
ameerj
8a7d7d16c8
glsl: minor cleanup
2021-07-22 21:51:36 -04:00
ameerj
0ac1a68a36
glsl: Fix and implement rest of cbuf access
2021-07-22 21:51:36 -04:00
ameerj
0b8e65125a
glsl: Implement TXQ and other misc changes
2021-07-22 21:51:36 -04:00
ameerj
5a4af6cf14
glsl: TLD4 implementation
2021-07-22 21:51:36 -04:00
ameerj
81c2595a33
glsl: Implement TLD instruction
2021-07-22 21:51:36 -04:00
ameerj
db039e6271
glsl: Implement TEXS
2021-07-22 21:51:36 -04:00
ameerj
b3253f6f44
glsl: Cleanup texture functions
2021-07-22 21:51:36 -04:00
lat9nq
fc7edccbc1
shader_recompiler: GCC fixes
2021-07-22 21:51:36 -04:00
ameerj
08935e289f
glsl: Implement TEX depth functions
2021-07-22 21:51:36 -04:00
ameerj
b055e4a91e
glsl: Implement TEX ImageSample functions
2021-07-22 21:51:36 -04:00
ameerj
8c9c79a8c6
glsl: Rework Shuffle emit instructions to align with SPIR-V
2021-07-22 21:51:36 -04:00
ameerj
a68609b4f8
glsl: Better Storage access and wip warps
2021-07-22 21:51:36 -04:00
ameerj
a28096cb70
glsl: Fix integer conversions, implement clamp CC
2021-07-22 21:51:36 -04:00
ameerj
fa06331601
glsl: Implement IADD CC
2021-07-22 21:51:36 -04:00
ameerj
54778aa10a
glsl: SSBO access fixes and wip SampleExplicitLod implementation.
2021-07-22 21:51:36 -04:00
ameerj
72974388fb
glsl: WIP var forward declaration
...
to fix Loop control flow.
2021-07-22 21:51:36 -04:00
ameerj
c797a0c5a5
glsl: Fix bindings, add some CC ops
2021-07-22 21:51:36 -04:00
ameerj
e6a0f0f384
glsl: remove unused headers
2021-07-22 21:51:36 -04:00
ameerj
b96d76fa7e
glsl: Implement derivatives and YDirection
...
plus some other misc additions/changed
2021-07-22 21:51:36 -04:00
ameerj
ac6135774f
glsl: Fix non-immediate buffer access
...
and many other misc implementations
2021-07-22 21:51:36 -04:00
ameerj
2328b0b2a8
glsl: textures wip
2021-07-22 21:51:36 -04:00
ameerj
32328acc39
glsl: Implement some attribute getters and setters
2021-07-22 21:51:36 -04:00
ameerj
c8b2a5a4f3
glsl: Track S32 atomics
2021-07-22 21:51:36 -04:00
ameerj
ee45d46f9e
glsl: Update phi node management
2021-07-22 21:51:36 -04:00
ameerj
4eb02b106f
glsl: Fix floating point compare ops
...
Logic for ordered/unordered ops was wrong.
2021-07-22 21:51:36 -04:00
ameerj
ce2ddb7d69
glsl: Query GL Device for FP16 extension support
2021-07-22 21:51:36 -04:00
ameerj
1d88049eaf
glsl: Simply FP storage atomics
2021-07-22 21:51:36 -04:00
ameerj
0adc9d2fc1
glsl: F16x2 storage atomics
2021-07-22 21:51:36 -04:00