7cc46a6faa
Merge pull request #3501 from ReinUsesLisp/rgba16-snorm
...
video_core: Implement RGBA16_SNORM
2020-03-15 21:24:53 -03:00
c5afe93dcc
renderer_opengl: Keep presentation frames in lock-step when GPU debugging.
...
- Fixes renderdoc with OpenGL renderer.
2020-03-14 17:45:01 -04:00
4373fa8042
gl_device: Add option to check GL_EXT_debug_tool.
2020-03-14 17:39:29 -04:00
69c7a01f88
vk/gl_shader_decompiler: Silence assertion on compute
2020-03-13 18:33:05 -03:00
4bc4851d45
gl_shader_decompiler: Fix implicit conversion errors
2020-03-13 18:33:05 -03:00
ae6189d7c2
shader/transform_feedback: Expose buffer stride
2020-03-13 18:33:05 -03:00
8e9f23f393
gl_rasterizer: Implement transform feedback bindings
2020-03-13 18:33:04 -03:00
4d711dface
gl_shader_decompiler: Decorate output attributes with XFB layout
...
We sometimes have to slice attributes in different parts. This is needed
for example in instances where the game feedbacks 3 components but
writes 4 from the shader (something that is possible with
GL_NV_transform_feedback).
2020-03-13 18:33:04 -03:00
244fe13219
Merge branch 'master' into shader-purge
2020-03-13 16:44:06 -03:00
b30b1f741d
Merge pull request #3491 from ReinUsesLisp/polygon-modes
...
gl_rasterizer: Implement polygon modes and fill rectangles
2020-03-13 10:08:57 -04:00
e24197bb3f
gl_shader_decompiler: Initialize gl_Position on vertex shaders
2020-03-12 23:31:06 -03:00
3a10016e38
gl_shader_decompiler: Add missing {} on smem GLSL emission
2020-03-12 21:50:37 -03:00
4dcca90ef4
video_core: Implement RGBA16_SNORM
...
Implement RGBA16_SNORM with the current API. Nothing special here.
2020-03-12 21:42:33 -03:00
825d629565
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.
2020-03-12 05:01:20 -03:00
8357908099
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.
2020-03-11 01:04:52 -03:00
e4bc3c3342
gl_rasterizer: Implement polygon modes and fill rectangles
2020-03-09 20:39:58 -03:00
eb5861e0a2
engines/maxwell_3d: Add TFB registers and store them in shader registry
2020-03-09 18:40:53 -03:00
b1acb4f73f
shader/registry: Address feedback
2020-03-09 18:40:53 -03:00
b1061afed9
gl_shader_decompiler: Add identifier to decompiled code
2020-03-09 18:40:53 -03:00
e612242977
gl_shader_decompiler: Roll back to GLSL core 430
...
RenderDoc won't build shaders if we use GLSL compatibility.
2020-03-09 18:40:53 -03:00
978172530e
const_buffer_engine_interface: Store component types
...
This is required for Vulkan. Sampling integer textures with float
handles is illegal.
2020-03-09 18:40:53 -03:00
e1932351a9
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.
2020-03-09 18:40:07 -03:00
66a8a3e887
shader/registry: Cache tessellation state
2020-03-09 18:40:07 -03:00
0528be5c92
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).
2020-03-09 18:40:07 -03:00
e8efd5a901
video_core: Rename "const buffer locker" to "registry"
2020-03-09 18:40:06 -03:00
bd8b9bbcee
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.
2020-03-09 18:40:06 -03:00
22e825a3bc
Merge pull request #3301 from ReinUsesLisp/state-tracker
...
video_core: Remove gl_state and use a state tracker based on dirty flags
2020-03-09 18:34:37 -03:00
84e9f9f395
Merge pull request #3452 from Morph1984/anisotropic-filtering
...
frontend/Graphics: Add "Advanced" graphics tab and experimental Anisotropic Filtering support
2020-03-07 22:28:35 -05:00
0361aa1915
Merge pull request #3451 from ReinUsesLisp/indexed-textures
...
vk_shader_decompiler: Implement indexed textures
2020-03-05 11:42:46 -05:00
67e7186d79
Merge pull request #3455 from ReinUsesLisp/attr-scaled
...
video_core: Implement more scaled attribute formats
2020-03-03 22:46:20 -05:00
ef7f6eb67d
renderer_opengl: Fix edge-case where alpha testing might cull presentation
2020-02-28 17:56:43 -03:00
a6a350ddc3
gl_texture_cache: Remove blending disable on blits
...
Blending doesn't affect blits. Rasterizer discard does, update the
commentaries.
2020-02-28 17:56:43 -03:00
887d5288ef
gl_rasterizer: Don't disable blending on clears
...
Blending doesn't affect clears.
2020-02-28 17:56:43 -03:00
ac204754d4
dirty_flags: Deduplicate code between OpenGL and Vulkan
2020-02-28 17:56:43 -03:00
042256c6bb
state_tracker: Remove type traits with named structures
2020-02-28 17:56:43 -03:00
b1498d2c54
gl_rasterizer: Remove num vertex buffers magic number
2020-02-28 17:56:43 -03:00
62437943a7
gl_rasterizer: Only apply polygon offset clamp if enabled
2020-02-28 17:56:43 -03:00
2eeea90713
gl_state_tracker: Implement dirty flags for depth clamp enabling
2020-02-28 17:56:43 -03:00
3ce66776ec
gl_rasterizer: Disable scissor 0 when scissor is not used on clear
2020-02-28 17:56:43 -03:00
35bb9239ca
gl_rasterizer: Notify depth mask changes on clear
2020-02-28 17:56:43 -03:00
98c8948b23
gl_rasterizer: Minor sort changes to clearing
2020-02-28 17:56:42 -03:00
a5bfc0d045
gl_state_tracker: Track state of index buffers
2020-02-28 17:56:42 -03:00
a42a6e1a2c
gl_state_tracker: Implement dirty flags for clip control
2020-02-28 17:56:42 -03:00
4f8d152b18
gl_state_tracker: Implement dirty flags for point sizes
2020-02-28 17:56:42 -03:00
231601763c
gl_state_tracker: Implement dirty flags for fragment color clamp
2020-02-28 17:56:42 -03:00
bf1a1d989f
gl_state_tracker: Implement dirty flags for logic op
2020-02-28 17:56:42 -03:00
13afd0e5b0
gl_state_tracker: Implement dirty flags for sRGB
2020-02-28 17:56:42 -03:00
d8f5c45051
gl_state_tracker: Implement dirty flags for rasterize enable
2020-02-28 17:56:42 -03:00
b727d99441
gl_state_tracker: Implement dirty flags for multisample
2020-02-28 17:56:42 -03:00
3c22bd92d8
gl_state_tracker: Implement dirty flags for alpha testing
2020-02-28 17:56:42 -03:00