d95d4ac843
shader/memory: Implement ATOM.ADD
...
ATOM operates atomically on global memory. For now only add ATOM.ADD
since that's what was found in commercial games.
This asserts for ATOM.ADD.S32 (handling the others as unimplemented),
although ATOM.ADD.U32 shouldn't be any different.
This change forces us to change the default type on SPIR-V storage
buffers from float to uint. We could also alias the buffers, but it's
simpler for now to just use uint. While we are at it, abstract the code
to avoid repetition.
2020-01-26 01:54:24 -03:00
bb8eb15d39
Shader_IR: Address feedback.
2020-01-25 09:04:59 -04:00
d26e74f0a3
shader/memory: Implement STL.S16 and STS.S16
2020-01-25 03:16:10 -03:00
9a2cdf8520
shader/memory: Implement unaligned LDL.S16 and LDS.S16
2020-01-25 03:16:10 -03:00
531f25a037
shader/memory: Move unaligned load/store to functions
2020-01-25 03:16:10 -03:00
96638f57c9
shader/memory: Implement LDL.S16 and LDS.S16
2020-01-25 03:15:55 -03:00
dfd998216c
Merge pull request #3344 from ReinUsesLisp/vk-botw
...
vk_shader_decompiler: Disable default values on unwritten render targets
2020-01-24 17:31:55 -05:00
806f569143
Shader_IR: Change name of TrackSampler function so it does not confuse with the type.
2020-01-24 16:44:48 -04:00
3919b7b8a9
Shader_IR: Corrections, styling and extras.
2020-01-24 16:44:48 -04:00
37b8504faa
Shader_IR: Correct Custom Variable assignment.
2020-01-24 16:44:47 -04:00
7c530e0666
Shader_IR: Propagate bindless index into the GL compiler.
2020-01-24 16:44:47 -04:00
3c34678627
Shader_IR: Implement Injectable Custom Variables to the IR.
2020-01-24 16:43:31 -04:00
2b02f29a2d
GL Backend: Introduce indexed samplers into the GL backend
2020-01-24 16:43:31 -04:00
037ea431ce
Shader_IR: deduce size of indexed samplers
2020-01-24 16:43:31 -04:00
f4603d23c5
Shader_IR: Setup Indexed Samplers on the IR
2020-01-24 16:43:30 -04:00
603c861532
Shader_IR: Implement initial code for tracking indexed samplers.
2020-01-24 16:43:30 -04:00
64496f2456
Shader_IR: Address Feedback
2020-01-24 16:43:30 -04:00
b97608ca64
Shader_IR: Allow constant access of guest driver.
2020-01-24 16:43:30 -04:00
dc5cfa8d28
Shader_IR: Address Feedback
2020-01-24 16:43:29 -04:00
74aa7de5e3
Guest_driver: Correct compiling errors in GCC.
2020-01-24 16:43:29 -04:00
1e4b6bef6f
Shader_IR: Store Bound buffer on Shader Usage
2020-01-24 16:43:29 -04:00
c921e496eb
GPU: Implement guest driver profile and deduce texture handler sizes.
2020-01-24 16:43:29 -04:00
a104b985a8
Merge pull request #3273 from FernandoS27/txd-array
...
Shader_IR: Implement TXD Array.
2020-01-24 14:02:40 -05:00
1690f1adba
vk_shader_decompiler: Disable default values on unwritten render targets
...
Some games like The Legend of Zelda: Breath of the Wild assign
render targets without writing them from the fragment shader. This
generates Vulkan validation errors, so silence these I previously
introduced a commit to set "vec4(0, 0, 0, 1)" for these attachments. The
problem is that this is not what games expect. This commit reverts that
change.
2020-01-24 01:16:21 -03:00
3ce28342a2
gl_shader_cache: Disable fastmath on Nvidia
2020-01-21 19:08:08 -03:00
79e0991d9b
Merge pull request #3330 from ReinUsesLisp/vk-blit-screen
...
vk_blit_screen: Initial implementation
2020-01-20 22:32:16 -04:00
a665581684
vk_blit_screen: Address feedback
2020-01-20 18:43:11 -03:00
69b44392a7
Merge pull request #3328 from ReinUsesLisp/vulkan-atoms
...
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
2020-01-20 00:01:52 -05:00
5a077c95ce
Merge pull request #3322 from ReinUsesLisp/vk-front-face
...
vk_graphics_pipeline: Set front facing properly
2020-01-19 23:22:34 -05:00
f5dfe68a94
vk_blit_screen: Initial implementation
...
This abstraction takes care of presenting accelerated and
non-accelerated or "framebuffer" images to the Vulkan swapchain.
2020-01-19 21:12:43 -03:00
41373d212e
Merge pull request #3313 from ReinUsesLisp/vk-rasterizer
...
vk_rasterizer: Implement Vulkan's rasterizer
2020-01-19 18:09:01 -05:00
b2c976ad0e
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
...
Also updates sirit to include atomic instructions.
2020-01-19 16:40:31 -03:00
51c8aea979
Merge pull request #3317 from ReinUsesLisp/gl-decomp-cc-decomp
...
gl_shader_decompiler: Fix decompilation of condition codes
2020-01-18 19:56:55 -04:00
d110a371bb
gl_state: Use bool instead of GLboolean
...
This fixes template resolution considering GLboolean an integer instead
of a bool.
2020-01-18 19:10:34 -03:00
94915d4ea1
vk_graphics_pipeline: Set front facing properly
...
Front face was being forced to a certain value when cull face is
disabled. Set a default value on initialization and drop the forcefully
set front facing value with culling disabled.
2020-01-18 18:50:47 -03:00
9bf4850f74
Merge pull request #3305 from ReinUsesLisp/point-size-program
...
gl_state: Implement PROGRAM_POINT_SIZE
2020-01-18 01:56:32 -05:00
15163edaaa
Merge pull request #3312 from ReinUsesLisp/atoms-u32
...
shader/memory: Implement ATOMS.ADD.U32
2020-01-18 00:54:07 -05:00
09b1d762d7
vk_rasterizer: Address feedback
2020-01-17 21:40:01 -03:00
f34e519da3
gl_shader_decompiler: Fix decompilation of condition codes
...
Use Visit instead of reimplementing it. Fixes unimplemented negations
for condition codes.
2020-01-17 21:23:01 -03:00
48863afb65
Merge pull request #3306 from ReinUsesLisp/gl-texture
...
gl_texture_cache: Minor fixes and style changes
2020-01-17 15:44:02 -05:00
657b3a366e
Merge pull request #3311 from ReinUsesLisp/z32fx24s8
...
format_lookup_table: Fix ZF32_X24S8 component types
2020-01-17 08:22:32 -05:00
fe5356d223
vk_rasterizer: Implement Vulkan's rasterizer
...
This abstraction is Vulkan's equivalent to OpenGL's rasterizer. It takes
care of joining all parts of the backend and rendering accordingly on
demand.
2020-01-16 23:05:15 -03:00
38e789c761
renderer_vulkan: Add header as placeholder
2020-01-16 22:54:15 -03:00
e041f33569
Merge pull request #3300 from ReinUsesLisp/vk-texture-cache
...
vk_texture_cache: Implement generic texture cache on Vulkan
2020-01-16 19:19:26 -05:00
f09cd52980
vk_texture_cache: Address feedback
2020-01-16 18:23:10 -03:00
63ba41a26d
shader/memory: Implement ATOMS.ADD.U32
2020-01-16 17:30:55 -03:00
0caab54b5d
format_lookup_table: Fix ZF32_X24S8 component types
...
Component types for ZF32_X24S8 were using UNORM. Drivers will set FLOAT,
UINT, UNORM, UNORM; causing a format mismatch. This commit addresses
that.
2020-01-16 17:29:13 -03:00
82e1285c1e
vk_texture_cache: Fix typo in commentary
...
Co-Authored-By: MysticExile <30736337+MysticExile@users.noreply.github.com >
2020-01-16 16:59:46 -03:00
30faf6a964
Merge pull request #3308 from lioncash/private
...
maxwell_3d: Make dirty_pointers private
2020-01-16 13:26:35 -05:00
d23869811d
Merge pull request #3304 from lioncash/fwd-decl
...
renderer_opengl/utils: Forward declare private structs
2020-01-16 11:21:18 -05:00