Fernando Sahmkow
e3d9c983aa
Implement SyncPoint Register in the GPU.
7 years ago
Lioncash
1211a5623e
video_core/engines: Make memory manager members private
These aren't used externally by anything, so they can be made private
data members.
7 years ago
Lioncash
33742deaf6
video_core/engines: Remove unnecessary inclusions where applicable
Replaces header inclusions with forward declarations where applicable
and also removes unused headers within the cpp file. This reduces a few
more dependencies on core/memory.h
7 years ago
Lioncash
e59ae7210a
common/math_util: Move contents into the Common namespace
These types are within the common library, so they should be within the
Common namespace.
7 years ago
ReinUsesLisp
20d8c304f2
maxwell_3d: Use std::bitset to manage dirty flags
7 years ago
Lioncash
12774b7c44
video_core: Remove usages of System::GetInstance() within the engines
Avoids the use of the global accessor in favor of explicitly making the
system a dependency within the interface.
7 years ago
ReinUsesLisp
1c8411dc8d
gl_rasterizer_cache: Use dirty flags for the depth buffer
7 years ago
ReinUsesLisp
6e932fe118
gl_rasterizer_cache: Use dirty flags for color buffers
7 years ago
ReinUsesLisp
5fec808e30
gl_shader_cache: Use dirty flags for shaders
7 years ago
David Marcec
1dfb0a513a
Fixed uninitialized memory due to missing returns in canary
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
7 years ago
ReinUsesLisp
5861ae801a
gl_rasterizer: Enable clip distances when set in register and in shader
7 years ago
bunnei
f8b215e361
gpu: Rewrite GPU command list processing with DmaPusher class.
- More accurate impl., fixes Undertale (among other games).
7 years ago
Rodolfo Bogado
07e7586b63
Implement depth clamp
7 years ago
Rodolfo Bogado
0eabde665d
Add support for Clip Distance enabled register
7 years ago
Marcos
fc09b5cc26
GPU States: Implement Polygon Offset. This is used in SMO all the time. ( #1784 )
* GPU States: Implement Polygon Offset. This is used in SMO all the time.
* Clang Format fixes.
* Initialize polygon_offset in the constructor.
7 years ago
ReinUsesLisp
ac2c2ded06
gl_shader_decompiler: Implement S2R's Y_DIRECTION
7 years ago
Rodolfo Bogado
dd86a7ee67
Add support for viewport_transfom_enable register
7 years ago
Rodolfo Bogado
d311047172
Add support for clear_flags register
7 years ago
bunnei
e17f9a1ed9
maxwell_3d: Implement alternate blend equations.
- Used by Undertale.
7 years ago
Rodolfo Bogado
a6fbb1ec16
small fix for alphaToOne bit location
7 years ago
Rodolfo Bogado
f53a271874
fix for gcc compilation
7 years ago
Rodolfo Bogado
00ae363ad5
add AlphaToCoverage and AlphaToOne
7 years ago
Rodolfo Bogado
bb20c5b8a0
add support for fragment_color_clamp
7 years ago
Rodolfo Bogado
bcf804a44e
fix viewport and scissor behavior
7 years ago
Markus Wick
264030c070
gl_rasterizer: Skip VB upload if the state is clean.
7 years ago
Rodolfo Bogado
a7c68376fe
Try to fix problems with stencil test in some games, relax translation to opengl enums to avoid crashing and only generate logs of the errors.
7 years ago
Markus Wick
755aa28572
gl_rasterizer: Skip VAO binding if the state is clean.
7 years ago
Rodolfo Bogado
92d9f97224
Add support to color mask to avoid issues in blending caused by wrong values in the alpha channel in some render targets.
7 years ago
Rodolfo Bogado
fbd0d677a3
Implement multi-target viewports and blending
7 years ago
bunnei
42b74a5e41
maxwell_3d: Restructure macro upload to use a single macro code memory.
- Fixes an issue where macros could be skipped.
- Fixes rendering of distant objects in Super Mario Odyssey.
7 years ago
Rodolfo Bogado
1670155ee2
Implement sRGB Support, including workarounds for nvidia driver issues and QT sRGB support
7 years ago
bunnei
b22ff96e0a
gl_rasterizer: Implement primitive restart.
7 years ago
bunnei
2bc1f075bb
maxwell_3d: Add code for initializing register defaults.
7 years ago
FernandoS27
de4f14e756
Implemented Alpha Testing
7 years ago
FernandoS27
1469c546c3
Implement 3D Textures
7 years ago
FernandoS27
df5575aa44
Add memory Layout to Render Targets and Depth Buffers
7 years ago
FernandoS27
020cee90ef
Fixed block height settings for RenderTargets and Depth Buffers, and added block width and block depth
7 years ago
FernandoS27
85a8a0b038
Assert Scissor tests
7 years ago
ReinUsesLisp
db80264fae
gl_rasterizer: Implement quads topology
7 years ago
ReinUsesLisp
07609b33c4
video_core: Implement point_size and add point state sync
7 years ago
ReinUsesLisp
51435ad30c
gl_state: Pack sampler bindings into a single ARB_multi_bind
7 years ago
ReinUsesLisp
f5b5c5ba06
video_core: Add asserts for CS, TFB and alpha testing
Add asserts for compute shader dispatching, transform feedback being
enabled and alpha testing. These have in common that they'll probably break
rendering without logging.
7 years ago
fearlessTobi
1190ea6ddb
Port #4182 from Citra: "Prefix all size_t with std::"
7 years ago
bunnei
05d93558f4
gl_rasterizer: Implement multiple color attachments.
7 years ago
Markus Wick
7902bc2853
gl_rasterizer: Implement a VAO cache.
This patch caches VAO objects instead of re-emiting all pointers per draw call.
Configuring this pointers is known as a fast task, but it yields too many GL
calls. So for better performance, just bind the VAO instead of 16 pointers.
7 years ago
bunnei
69146a7aa8
maxwell_3d: Update to include additional stencil registers.
7 years ago
Subv
b55ca15b4b
GPU: Added registers for the logicop functionality.
7 years ago
Subv
175096eff7
GLRasterizer: Implemented instanced vertex arrays.
Before each draw call, for every enabled vertex array configured as instanced, we take the current instance id and divide it by its configured divisor, then we multiply that by the corresponding stride and increment the start address by the resulting amount. This way we can simulate the vertex array being incremented once per instance without actually using OpenGL's instancing functions.
7 years ago
Subv
1162a49920
Rasterizer: Implemented instanced rendering.
We keep track of the current instance and update an uniform in the shaders to let them know which instance they are.
Instanced vertex arrays are not yet implemented.
8 years ago
Subv
45ee826309
GPU/Maxwell3D: Implemented an alternative set of blend factors.
These are used by nouveau and some games like SMO.
8 years ago