ReinUsesLisp
7fe1da4478
gl_shader_decompiler: Initialize gl_Position on vertex shaders
6 years ago
ReinUsesLisp
2bfe536e83
gl_shader_decompiler: Add missing {} on smem GLSL emission
6 years ago
ReinUsesLisp
25cfbc7786
video_core: Implement RGBA16_SNORM
Implement RGBA16_SNORM with the current API. Nothing special here.
6 years ago
ReinUsesLisp
9fce105f45
texture_cache: Report incompatible textures as black
Some games bind incompatible texture types to certain types.
For example Astral Chain binds a 2D texture with 1 layer (non-array) to
a cubemap slot (that's how it's used in the shader). After testing this
in hardware, the expected "undefined behavior" is to report all pixels
as black.
We already have a path for reporting black textures in the texture
cache. When textures types are incompatible, this commit binds these
kind of textures. This is done on the API agnostic texture cache so no
extra code has to be inserted on OpenGL or Vulkan.
As a side effect, this fixes invalidations of ASTC textures on Astral
Chain. This happened because yuzu detected a cube texture and forced
6 faces, generating a texture larger than what the TIC reported.
6 years ago
ReinUsesLisp
2337a2fdbc
texture_cache/surface_params: Force depth=1 on 2D textures
Sometimes games will sample a 2D array TIC with a 2D access in the
shader. This causes bad interactions with the rest of the texture cache.
To emulate what the game wants to do, force a depth=1 on 2D textures
(not 2D arrays) and let the texture cache handle the rest.
6 years ago
ReinUsesLisp
df815e0784
gl_shader_decompiler: Add layer component to texelFetch
TexelFetch was not emitting the array component generating invalid GLSL.
6 years ago
ReinUsesLisp
ba8c1c6d1e
gl_shader_decompiler: Fix regression in render target declarations
A previous commit introduced a way to declare as few render targets as
possible. Turns out this introduced a regression in some games.
6 years ago
ReinUsesLisp
37c5dadbc3
gl_shader_manager: Fix interaction between graphics and compute
After a compute shader was set to the pipeline, no graphics shader was
invoked again. To address this use glUseProgram to bind compute shaders
(without state tracking) and call glUseProgram(0) when transitioning out
of it back to the graphics pipeline.
6 years ago
ReinUsesLisp
96fdbc638a
gl_rasterizer: Implement polygon modes and fill rectangles
6 years ago
ReinUsesLisp
207b9ba28c
engines/maxwell_3d: Add TFB registers and store them in shader registry
6 years ago
ReinUsesLisp
4dcb56ddbd
shader/registry: Address feedback
6 years ago
ReinUsesLisp
00e790c3de
gl_shader_decompiler: Add identifier to decompiled code
6 years ago
ReinUsesLisp
8c2bf4879f
gl_shader_decompiler: Roll back to GLSL core 430
RenderDoc won't build shaders if we use GLSL compatibility.
6 years ago
ReinUsesLisp
7a93d38e0f
const_buffer_engine_interface: Store component types
This is required for Vulkan. Sampling integer textures with float
handles is illegal.
6 years ago
ReinUsesLisp
1f4e8db223
yuzu/loading_screen: Remove unused shader progress mode
6 years ago
ReinUsesLisp
25cfb69c40
gl_shader_cache: Reduce registry consistency to debug assert
Registry consistency is something that practically can't happen and it
has a measurable runtime cost. Reduce it to a DEBUG_ASSERT.
6 years ago
ReinUsesLisp
776aa5bdf9
shader/registry: Cache tessellation state
6 years ago
ReinUsesLisp
22052e73de
shader/registry: Store graphics and compute metadata
Store information GLSL forces us to provide but it's dynamic state in
hardware (workgroup sizes, primitive topology, shared memory size).
6 years ago
ReinUsesLisp
99be31c902
video_core: Rename "const buffer locker" to "registry"
6 years ago
ReinUsesLisp
8021ee48a3
gl_shader_cache: Rework shader cache and remove post-specializations
Instead of pre-specializing shaders and then post-specializing them,
drop the later and only "specialize" the shader while decoding it.
6 years ago
ReinUsesLisp
b8e43cb17c
textures: Fix anisotropy hack
Previous code could generate an anisotropy value way higher than x16.
6 years ago
Nguyen Dac Nam
9516f0923c
vk_reasterizer: fix mistype on SetupGraphicsImages
This should use Maxwell3D engine. Fixed some GPU error on Kirby and maybe other games.
6 years ago
ReinUsesLisp
ee8ef2998d
vk_rasterizer: Support disabled uniform buffers
6 years ago
ReinUsesLisp
09820ecef0
maxwell_to_vk: Remove Storage capability for A1B5G5R5U
6 years ago
Nguyen Dac Nam
5658f77467
nit: move comment to right place.
6 years ago
ReinUsesLisp
f391be4227
video_core/dirty_flags: Address feedback
6 years ago
ReinUsesLisp
a440a79146
renderer_opengl: Fix edge-case where alpha testing might cull presentation
6 years ago
ReinUsesLisp
950450fd8a
gl_texture_cache: Remove blending disable on blits
Blending doesn't affect blits. Rasterizer discard does, update the
commentaries.
6 years ago
ReinUsesLisp
1a5c68bbef
gl_rasterizer: Don't disable blending on clears
Blending doesn't affect clears.
6 years ago
ReinUsesLisp
3de883d37b
dirty_flags: Deduplicate code between OpenGL and Vulkan
6 years ago
ReinUsesLisp
a8c9550a12
vk_rasterizer: Pass Maxwell registers to dynamic updates
6 years ago
ReinUsesLisp
2eb2855b05
state_tracker: Remove type traits with named structures
6 years ago
ReinUsesLisp
59db5829f5
vk_state_tracker: Implement dirty flags for stencil properties
6 years ago
ReinUsesLisp
b06a3534ea
vk_state_tracker: Implement dirty flags for depth bounds
6 years ago
ReinUsesLisp
4c4bd85947
vk_state_tracker: Implement dirty flags for blend constants
6 years ago
ReinUsesLisp
1ccf5ba777
vk_state_tracker: Implement dirty flags for depth bias
6 years ago
ReinUsesLisp
ff0c2cb0a4
vk_state_tracker: Implement dirty flags for scissors
6 years ago
ReinUsesLisp
69db1cd1f9
vk_state_tracker: Initial implementation
Add support for render targets and viewports.
6 years ago
ReinUsesLisp
f903c3800e
gl_rasterizer: Remove num vertex buffers magic number
6 years ago
ReinUsesLisp
b7af0cc2ee
gl_rasterizer: Only apply polygon offset clamp if enabled
6 years ago
ReinUsesLisp
6ea3b6253e
gl_state_tracker: Implement dirty flags for depth clamp enabling
6 years ago
ReinUsesLisp
084a112d6c
gl_rasterizer: Disable scissor 0 when scissor is not used on clear
6 years ago
ReinUsesLisp
a48930ac7c
gl_rasterizer: Notify depth mask changes on clear
6 years ago
ReinUsesLisp
f6e5b9e775
gl_rasterizer: Minor sort changes to clearing
6 years ago
ReinUsesLisp
31daa97fce
maxwell_3d: Use two tables instead of three for dirty flags
6 years ago
ReinUsesLisp
5d75921b0f
gl_state_tracker: Track state of index buffers
6 years ago
ReinUsesLisp
085cca1a2c
gl_state_tracker: Implement dirty flags for clip control
6 years ago
ReinUsesLisp
de5a81846d
gl_state_tracker: Implement dirty flags for point sizes
6 years ago
ReinUsesLisp
cd63e8d770
gl_state_tracker: Implement dirty flags for fragment color clamp
6 years ago
ReinUsesLisp
d01d671249
gl_state_tracker: Implement dirty flags for logic op
6 years ago