Marcos
cb8d51e37e
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
924e834b8f
gl_shader_decompiler: Implement S2R's Y_DIRECTION
7 years ago
Rodolfo Bogado
54c2a4cafc
Add support for clear_flags register
7 years ago
bunnei
0e6a608245
maxwell_3d: Implement alternate blend equations.
- Used by Undertale.
7 years ago
Rodolfo Bogado
5297495c87
small fix for alphaToOne bit location
7 years ago
Rodolfo Bogado
e69eb3c760
fix for gcc compilation
7 years ago
Rodolfo Bogado
53b4a1af0f
add AlphaToCoverage and AlphaToOne
7 years ago
Rodolfo Bogado
8ed7e1af2c
add support for fragment_color_clamp
7 years ago
Rodolfo Bogado
1881e86c43
fix viewport and scissor behavior
7 years ago
Rodolfo Bogado
4a6eff3b7b
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
359db6a673
gl_rasterizer: Skip VAO binding if the state is clean.
7 years ago
Rodolfo Bogado
19038db489
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
145ae36963
Implement multi-target viewports and blending
7 years ago
bunnei
de0ab806df
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
0287b2be6d
Implement sRGB Support, including workarounds for nvidia driver issues and QT sRGB support
7 years ago
bunnei
58444a0376
gl_rasterizer: Implement primitive restart.
7 years ago
bunnei
949d9a7136
maxwell_3d: Add code for initializing register defaults.
7 years ago
FernandoS27
aa620c14af
Implemented Alpha Testing
7 years ago
FernandoS27
fd9e2d0073
Implement 3D Textures
7 years ago
FernandoS27
5f4ee6f0c8
Add memory Layout to Render Targets and Depth Buffers
7 years ago
FernandoS27
af653906d0
Fixed block height settings for RenderTargets and Depth Buffers, and added block width and block depth
7 years ago
FernandoS27
30ff42b8cc
Assert Scissor tests
7 years ago
ReinUsesLisp
3e2380327a
gl_rasterizer: Implement quads topology
7 years ago
ReinUsesLisp
e3e51d3ddb
video_core: Implement point_size and add point state sync
7 years ago
ReinUsesLisp
b8f1506aa5
gl_state: Pack sampler bindings into a single ARB_multi_bind
7 years ago
ReinUsesLisp
ab65fde9f4
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
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
7 years ago
bunnei
49b15af054
gl_rasterizer: Implement multiple color attachments.
7 years ago
Markus Wick
d3ad9469a1
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
2a472ff54d
maxwell_3d: Update to include additional stencil registers.
7 years ago
Subv
6bcdf37d4f
GPU: Added registers for the logicop functionality.
7 years ago
Subv
e0f66c1fbf
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
c5284efd4f
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
969326bd58
GPU/Maxwell3D: Implemented an alternative set of blend factors.
These are used by nouveau and some games like SMO.
8 years ago
Subv
2dad1204e8
RasterizerGL: Ignore invalid/unset vertex attributes.
This should make the es2gears example not crash anymore.
8 years ago
bunnei
57982df105
maxwell_3d: Use correct const buffer size and check bounds.
- Fixes mem corruption with Super Mario Odyssey and Pokkén Tournament DX.
8 years ago
Lioncash
6030c5ce41
video_core: Eliminate the g_renderer global variable
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.
For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
8 years ago
bunnei
5287991a36
maxwell_3d: Add depth buffer enable, width, and height registers.
8 years ago
Lioncash
bb960c8cb4
video_core: Use nested namespaces where applicable
Compresses a few namespace specifiers to be more compact.
8 years ago
Subv
3d3b10adc7
GPU: Added register definitions for the stencil parameters.
8 years ago
bunnei
8aeff9cf8e
gl_rasterizer: Fix check for if a shader stage is enabled.
8 years ago
Subv
9f6a5660e8
GPU: Allow using the old NV04 values for the depth test function.
These seem to be just a valid as the GL token values. Thanks @ReinUsesLisp
This restores graphical output to Disgaea 5
8 years ago
Subv
c1bebdef5e
GPU: Flip the triangle front face winding if the GPU is configured to not flip the triangles.
OpenGL's default behavior is already correct when the GPU is configured to flip the triangles.
This fixes 1-2 Switch's splash screen.
8 years ago
Subv
827bb08c91
GPU: Added registers for the CLEAR_BUFFERS and CLEAR_COLOR methods.
8 years ago
Subv
6e0eba9917
GPU: Use only the least significant 3 bits when reading the depth test func.
Some games set the full GL define value here (including nouveau), but others just seem to set those last 3 bits.
8 years ago
Subv
c1f55c32c8
GPU: Added registers for depth test and cull mode.
8 years ago
Subv
0f929762b3
GPU: Implemented the Z24S8 depth format and load the depth framebuffer.
8 years ago
Subv
cc73bad293
GPU: Added register definitions for the vertex buffer base element.
8 years ago
bunnei
6a28a66832
maxwell_3d: Add a struct for RenderTargetConfig.
8 years ago
Subv
c712dafaee
GPU: Added registers for normal and independent blending.
8 years ago