ReinUsesLisp
d222e63967
shader/memory: Implement RED.E.ADD
...
Implements a reduction operation. It's an atomic operation that doesn't
return a value.
This commit introduces another primitive because some shading languages
might have a primitive for reduction operations.
2020-04-06 02:24:47 -03:00
Rodrigo Locatti
5bd5340d17
Merge pull request #3552 from jroweboy/single-context
...
Refactor Context management (Fixes renderdoc on opengl issues)
2020-04-02 01:38:25 -03:00
Rodrigo Locatti
00dde9cf72
Merge pull request #3506 from namkazt/patch-9
...
shader_decode: Implement partial ATOM/ATOMS instr
2020-03-31 00:56:28 -03:00
namkazy
39880b6fcb
gl_decompiler: min/max op not implement yet
2020-03-30 18:48:22 +07:00
Nguyen Dac Nam
f3880c13fa
gl_decompiler: add atomic op
2020-03-30 17:44:45 +07:00
James Rowe
c935a1a475
Address review and fix broken yuzu-tester build
2020-03-25 23:32:42 -06:00
ReinUsesLisp
6df25c4b2e
gl_rasterizer: Update stencil test regardless of it being disabled
2020-03-26 01:08:14 -03:00
ReinUsesLisp
90b050f9f4
gl_rasterizer: Synchronize stencil testing on clears
2020-03-26 00:51:47 -03:00
bunnei
b769578c49
Merge pull request #3520 from ReinUsesLisp/legacy-varyings
...
gl_shader_decompiler: Implement legacy varyings
2020-03-25 19:27:51 -04:00
James Rowe
b37d69e5e1
Frontend/GPU: Refactor context management
...
Changes the GraphicsContext to be managed by the GPU core. This
eliminates the need for the frontends to fool around with tricky
MakeCurrent/DoneCurrent calls that are dependent on the settings (such
as async gpu option).
This also refactors out the need to use QWidget::fromWindowContainer as
that caused issues with focus and input handling. Now we use a regular
QWidget and just access the native windowHandle() directly.
Another change is removing the debug tool setting in FrameMailbox.
Instead of trying to block the frontend until a new frame is ready, the
core will now take over presentation and draw directly to the window if
the renderer detects that its hooked by NSight or RenderDoc
Lastly, since it was in the way, I removed ScopeAcquireWindowContext and
replaced it with a simple subclass in GraphicsContext that achieves the
same result
2020-03-24 21:03:42 -06:00
ReinUsesLisp
e800c76c4b
gl_rasterizer: Use transformed viewport for depth ranges
...
Implement depth ranges using the transformed viewport instead of the
generic one. This matches the current Vulkan implementation but doesn't
support negative depth ranges. An update to glad is required for this.
2020-03-22 03:26:07 -03:00
ReinUsesLisp
c332b80516
gl_shader_decompiler: Remove deprecated function and its usages
2020-03-18 20:03:19 -03:00
ReinUsesLisp
b5c3cf8e24
gl_rasterizer: Silence misc warnings
2020-03-18 20:03:19 -03:00
ReinUsesLisp
704373040f
gl_shader_decompiler: Don't redeclare gl_VertexID and gl_InstanceID
2020-03-18 01:28:41 -03:00
Mat M
23ad5098af
Merge pull request #3510 from FernandoS27/dirty-write
...
DirtyFlags: relax need to set render_targets as dirty
2020-03-17 17:29:22 -04:00
bunnei
f31280affc
Merge pull request #3498 from ReinUsesLisp/texel-fetch-glsl
...
gl_shader_decompiler: Add layer component to texelFetch
2020-03-17 10:53:38 -04:00
ReinUsesLisp
36e48da114
renderer_opengl: Move some logic to an anonymous namespace
2020-03-16 04:03:34 -03:00
ReinUsesLisp
018df6f10f
renderer_opengl: Detect Nvidia Nsight as a debugging tool
...
Use getenv to detect Nsight.
2020-03-16 03:59:08 -03:00
Rodrigo Locatti
3a6abba3ef
Merge pull request #3501 from ReinUsesLisp/rgba16-snorm
...
video_core: Implement RGBA16_SNORM
2020-03-15 21:24:53 -03:00
ReinUsesLisp
c71e618ddb
gl_shader_decompiler: Implement legacy varyings
...
Legacy varyings are special attributes carried over in hardware from
the OpenGL 1 and OpenGL 2 days. These were generally used instead of the
generic attributes we use today. They are deprecated or removed from
most APIs, but Nvidia still ships them in hardware.
To implement these, this commit maps them 1:1 to OpenGL compatibility.
2020-03-15 21:03:59 -03:00
bunnei
6ae05a9a45
renderer_opengl: Keep presentation frames in lock-step when GPU debugging.
...
- Fixes renderdoc with OpenGL renderer.
2020-03-14 17:45:01 -04:00
bunnei
dc916f35ad
gl_device: Add option to check GL_EXT_debug_tool.
2020-03-14 17:39:29 -04:00
Fernando Sahmkow
51ceb14a65
DirtyFlags: relax need to set render_targets as dirty
...
The texture cache already takes care of setting a render target to dirty
when invalidated.
2020-03-14 11:47:33 -04:00
ReinUsesLisp
00de4b82b4
vk/gl_shader_decompiler: Silence assertion on compute
2020-03-13 18:33:05 -03:00
ReinUsesLisp
dcb8702efe
gl_shader_decompiler: Fix implicit conversion errors
2020-03-13 18:33:05 -03:00
ReinUsesLisp
8838f3322c
shader/transform_feedback: Expose buffer stride
2020-03-13 18:33:05 -03:00
ReinUsesLisp
fcc4b81079
gl_rasterizer: Implement transform feedback bindings
2020-03-13 18:33:04 -03:00
ReinUsesLisp
7e6d501452
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
Rodrigo Locatti
e836473754
Merge branch 'master' into shader-purge
2020-03-13 16:44:06 -03:00
bunnei
4ee2a50537
Merge pull request #3491 from ReinUsesLisp/polygon-modes
...
gl_rasterizer: Implement polygon modes and fill rectangles
2020-03-13 10:08:57 -04:00
ReinUsesLisp
7fe1da4478
gl_shader_decompiler: Initialize gl_Position on vertex shaders
2020-03-12 23:31:06 -03:00
ReinUsesLisp
2bfe536e83
gl_shader_decompiler: Add missing {} on smem GLSL emission
2020-03-12 21:50:37 -03:00
ReinUsesLisp
25cfbc7786
video_core: Implement RGBA16_SNORM
...
Implement RGBA16_SNORM with the current API. Nothing special here.
2020-03-12 21:42:33 -03:00
ReinUsesLisp
df815e0784
gl_shader_decompiler: Add layer component to texelFetch
...
TexelFetch was not emitting the array component generating invalid GLSL.
2020-03-12 18:10:29 -03:00
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.
2020-03-12 05:01:20 -03:00
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.
2020-03-11 01:04:52 -03:00
ReinUsesLisp
96fdbc638a
gl_rasterizer: Implement polygon modes and fill rectangles
2020-03-09 20:39:58 -03:00
ReinUsesLisp
207b9ba28c
engines/maxwell_3d: Add TFB registers and store them in shader registry
2020-03-09 18:40:53 -03:00
ReinUsesLisp
4dcb56ddbd
shader/registry: Address feedback
2020-03-09 18:40:53 -03:00
ReinUsesLisp
00e790c3de
gl_shader_decompiler: Add identifier to decompiled code
2020-03-09 18:40:53 -03:00
ReinUsesLisp
8c2bf4879f
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
ReinUsesLisp
7a93d38e0f
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
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.
2020-03-09 18:40:07 -03:00
ReinUsesLisp
776aa5bdf9
shader/registry: Cache tessellation state
2020-03-09 18:40:07 -03:00
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).
2020-03-09 18:40:07 -03:00
ReinUsesLisp
99be31c902
video_core: Rename "const buffer locker" to "registry"
2020-03-09 18:40:06 -03:00
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.
2020-03-09 18:40:06 -03:00
Rodrigo Locatti
8d86741eb9
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
bunnei
978cd350dd
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
bunnei
cb84f86f3d
Merge pull request #3451 from ReinUsesLisp/indexed-textures
...
vk_shader_decompiler: Implement indexed textures
2020-03-05 11:42:46 -05:00