ReinUsesLisp
b69321650e
gl_rasterizer: Fix instanced draw arrays
glDrawArrays was being used when the draw had a base instance specified.
This commit removes the draw parameters abstraction and fixes the
mentioned issue.
6 years ago
ReinUsesLisp
f92cbc5501
yuzu: Implement Vulkan frontend
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
6 years ago
ReinUsesLisp
788d57d723
settings: Add settings for graphics backend
6 years ago
ReinUsesLisp
9f0162e4b5
shader/other: Fix skips for SYNC and BRK
6 years ago
ReinUsesLisp
270177f38a
shader/other: Stub S2R LaneId
6 years ago
ReinUsesLisp
b35449c85d
buffer_cache: Delay buffer destructions
Delay buffer destruction some extra frames to avoid destroying buffers
that are still being used from older frames. This happens on Nvidia's
driver with mailbox.
6 years ago
ReinUsesLisp
8178fe8960
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
This was implemented by a previous commit and it's no longer required.
6 years ago
ReinUsesLisp
abae795986
gl_texture_cache: Silence implicit sign cast warnings
6 years ago
ReinUsesLisp
137a8aa55c
shader/bfi: Implement register-constant buffer variant
It's the same as the variant that was implemented, but it takes the
operands from another source.
6 years ago
ReinUsesLisp
e3fc3459c8
shader/arithmetic: Implement FCMP
Compares the third operand with zero, then selects between the first and
second.
6 years ago
ReinUsesLisp
f55f6ff9bb
texture_cache/surface_base: Fix layered break down
Layered break downs was passing "layer" as a "depth" parameter. This
commit addresses that.
6 years ago
ReinUsesLisp
d17dfa6104
gl_texture_cache: Properly implement depth/stencil sampling
This addresses the long standing issue of compatibility vs. core
profiles on OpenGL, properly implementing depth vs. stencil sampling
depending on the texture swizzle.
6 years ago
ReinUsesLisp
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.
6 years ago
Fernando Sahmkow
bb8eb15d39
Shader_IR: Address feedback.
6 years ago
ReinUsesLisp
d26e74f0a3
shader/memory: Implement STL.S16 and STS.S16
6 years ago
ReinUsesLisp
9a2cdf8520
shader/memory: Implement unaligned LDL.S16 and LDS.S16
6 years ago
ReinUsesLisp
531f25a037
shader/memory: Move unaligned load/store to functions
6 years ago
ReinUsesLisp
96638f57c9
shader/memory: Implement LDL.S16 and LDS.S16
6 years ago
Fernando Sahmkow
806f569143
Shader_IR: Change name of TrackSampler function so it does not confuse with the type.
6 years ago
Fernando Sahmkow
3919b7b8a9
Shader_IR: Corrections, styling and extras.
6 years ago
Fernando Sahmkow
37b8504faa
Shader_IR: Correct Custom Variable assignment.
6 years ago
Fernando Sahmkow
7c530e0666
Shader_IR: Propagate bindless index into the GL compiler.
6 years ago
Fernando Sahmkow
3c34678627
Shader_IR: Implement Injectable Custom Variables to the IR.
6 years ago
Fernando Sahmkow
2b02f29a2d
GL Backend: Introduce indexed samplers into the GL backend
6 years ago
Fernando Sahmkow
037ea431ce
Shader_IR: deduce size of indexed samplers
6 years ago
Fernando Sahmkow
f4603d23c5
Shader_IR: Setup Indexed Samplers on the IR
6 years ago
Fernando Sahmkow
603c861532
Shader_IR: Implement initial code for tracking indexed samplers.
6 years ago
Fernando Sahmkow
64496f2456
Shader_IR: Address Feedback
6 years ago
Fernando Sahmkow
b97608ca64
Shader_IR: Allow constant access of guest driver.
6 years ago
Fernando Sahmkow
dc5cfa8d28
Shader_IR: Address Feedback
6 years ago
Fernando Sahmkow
74aa7de5e3
Guest_driver: Correct compiling errors in GCC.
6 years ago
Fernando Sahmkow
1e4b6bef6f
Shader_IR: Store Bound buffer on Shader Usage
6 years ago
Fernando Sahmkow
c921e496eb
GPU: Implement guest driver profile and deduce texture handler sizes.
6 years ago
ReinUsesLisp
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.
6 years ago
ReinUsesLisp
3ce28342a2
gl_shader_cache: Disable fastmath on Nvidia
6 years ago
ReinUsesLisp
a665581684
vk_blit_screen: Address feedback
6 years ago
ReinUsesLisp
f5dfe68a94
vk_blit_screen: Initial implementation
This abstraction takes care of presenting accelerated and
non-accelerated or "framebuffer" images to the Vulkan swapchain.
6 years ago
ReinUsesLisp
b2c976ad0e
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
Also updates sirit to include atomic instructions.
6 years ago
ReinUsesLisp
d110a371bb
gl_state: Use bool instead of GLboolean
This fixes template resolution considering GLboolean an integer instead
of a bool.
6 years ago
ReinUsesLisp
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.
6 years ago
ReinUsesLisp
09b1d762d7
vk_rasterizer: Address feedback
6 years ago
ReinUsesLisp
f34e519da3
gl_shader_decompiler: Fix decompilation of condition codes
Use Visit instead of reimplementing it. Fixes unimplemented negations
for condition codes.
6 years ago
ReinUsesLisp
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.
6 years ago
ReinUsesLisp
38e789c761
renderer_vulkan: Add header as placeholder
6 years ago
ReinUsesLisp
f09cd52980
vk_texture_cache: Address feedback
6 years ago
ReinUsesLisp
63ba41a26d
shader/memory: Implement ATOMS.ADD.U32
6 years ago
ReinUsesLisp
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.
6 years ago
Rodrigo Locatti
82e1285c1e
vk_texture_cache: Fix typo in commentary
Co-Authored-By: MysticExile <30736337+MysticExile@users.noreply.github.com>
6 years ago
Lioncash
9e874898f5
maxwell_3d: Make dirty_pointers private
This isn't used outside of the class itself, so we can make it private
for the time being.
6 years ago
ReinUsesLisp
c375d735e6
gl_state: Implement PROGRAM_POINT_SIZE
For gl_PointSize to have effect we have to activate
GL_PROGRAM_POINT_SIZE.
6 years ago