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
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
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
Subv
8582c5bb3e
RasterizerGL: Ignore invalid/unset vertex attributes.
This should make the es2gears example not crash anymore.
8 years ago
bunnei
89b9893d28
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
49dc22f84e
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
6d96a4fc0a
maxwell_3d: Add depth buffer enable, width, and height registers.
8 years ago
Lioncash
bdfd46e192
video_core: Use nested namespaces where applicable
Compresses a few namespace specifiers to be more compact.
8 years ago
Subv
8335e656bb
GPU: Added register definitions for the stencil parameters.
8 years ago
bunnei
e904e1f785
gl_rasterizer: Fix check for if a shader stage is enabled.
8 years ago
Subv
c44c0078cc
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
70f55cf738
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
be5f1dde73
GPU: Added registers for the CLEAR_BUFFERS and CLEAR_COLOR methods.
8 years ago
Subv
40fd6504e2
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
dfe650f7bd
GPU: Added registers for depth test and cull mode.
8 years ago
Subv
62068f723a
GPU: Implemented the Z24S8 depth format and load the depth framebuffer.
8 years ago
Subv
270358e666
GPU: Added register definitions for the vertex buffer base element.
8 years ago
bunnei
1576d41c0f
maxwell_3d: Add a struct for RenderTargetConfig.
8 years ago
Subv
3e48928bf2
GPU: Added registers for normal and independent blending.
8 years ago