Commit graph

2077 commits

Author SHA1 Message Date
ReinUsesLisp
e96c0d880a gl_state: Remove clamp framebuffer color tracking
This commit doesn't reset it for screen draws because clamping doesn't
change anything there.
2020-02-28 16:58:30 -03:00
ReinUsesLisp
6825128d89 gl_state: Remove multisample tracking 2020-02-28 16:57:47 -03:00
ReinUsesLisp
d246878a22 gl_state: Remove framebuffer sRGB tracking 2020-02-28 16:55:23 -03:00
ReinUsesLisp
d7935f5d7e gl_state: Remove VAO cache and tracking 2020-02-28 16:54:37 -03:00
ReinUsesLisp
0bd84bf355 gl_state: Remove depth clamp tracking 2020-02-28 16:53:35 -03:00
ReinUsesLisp
1d5db114fb gl_state: Remove depth tracking 2020-02-28 16:52:46 -03:00
ReinUsesLisp
c26ea80ae3 gl_state: Remove primitive restart tracking 2020-02-28 16:51:45 -03:00
ReinUsesLisp
3144e7be89 gl_state: Remove logic op tracker 2020-02-28 16:51:23 -03:00
ReinUsesLisp
8d5f627d8d gl_state: Remove blend color tracking 2020-02-28 16:50:58 -03:00
ReinUsesLisp
84d4ac72ff gl_state: Remove polygon offset tracking 2020-02-28 16:49:20 -03:00
ReinUsesLisp
cbc174ce6f gl_state: Remove alpha test tracking 2020-02-28 16:48:57 -03:00
ReinUsesLisp
b5d8b842a1 gl_state: Remove cull mode tracking 2020-02-28 16:48:23 -03:00
ReinUsesLisp
1736a04693 gl_state: Remove front face tracking 2020-02-28 16:47:59 -03:00
ReinUsesLisp
8366870b35 gl_state: Remove point size tracking 2020-02-28 16:39:44 -03:00
ReinUsesLisp
c158d37e68 gl_rasterizer: Add oglEnablei helper 2020-02-28 16:39:44 -03:00
ReinUsesLisp
7cc8204131 gl_rasterizer: Add OpenGL enable/disable helper 2020-02-28 16:39:44 -03:00
ReinUsesLisp
c2d3732176 gl_rasterizer: Remove dirty flags 2020-02-28 16:39:27 -03:00
bunnei
8633ca172e renderer_opengl: Fix SRGB presentation frame tracking.
- Fixes SRGB in Super Smash Bros. Ultimate.
2020-02-28 01:13:38 -05:00
bunnei
c928b07625 renderer_opengl: Reduce swap chain size to 3. 2020-02-27 19:50:17 -05:00
bunnei
0e5233098f renderer_opengl: Use more concise lock syntax. 2020-02-26 18:35:35 -05:00
bunnei
cba9bdcab0 renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace. 2020-02-26 18:28:50 -05:00
bunnei
61f86b0058 renderer_opengl: Create gl_framebuffer_data if empty. 2020-02-25 21:23:02 -05:00
bunnei
361819a125 renderer_opengl: Add texture mailbox support for presenter thread. 2020-02-25 21:22:59 -05:00
bunnei
44137628c8 renderer_opengl: Add OGLRenderbuffer to resource/state management. 2020-02-25 21:22:58 -05:00
bunnei
75487d9d84 Merge pull request #3417 from ReinUsesLisp/r32i
texture: Implement R32I
2020-02-25 14:08:45 -05:00
bunnei
80e577e2a6 Merge pull request #3425 from ReinUsesLisp/layered-framebuffer
texture_cache: Implement layered framebuffer attachments
2020-02-24 10:14:50 -05:00
bunnei
20c01b5dbd Merge pull request #3422 from ReinUsesLisp/buffer-flush
surface_base: Implement texture buffer flushes
2020-02-22 23:09:50 -05:00
bunnei
5c5b6cf721 Merge pull request #3414 from ReinUsesLisp/maxwell-3d-draw
maxwell_3d: Unify draw methods
2020-02-19 16:13:50 -05:00
bunnei
3360446580 Merge pull request #3411 from ReinUsesLisp/specific-funcs
gl_rasterizer: Use the least generic OpenGL draw function possible
2020-02-19 15:37:41 -05:00
ReinUsesLisp
505f30fdaf texture_cache: Implement layered framebuffer attachments
Layered framebuffer attachments is a feature that allows applications to
write attach layered textures to a single attachment. What layer the
fragments are written to is decided from the shader using gl_Layer.
2020-02-16 04:19:32 -03:00
ReinUsesLisp
4fd155c282 surface_base: Implement texture buffer flushes
Implement downloads to guest memory from texture buffers on the generic
cache and OpenGL.
2020-02-16 04:13:27 -03:00
ReinUsesLisp
f3255c3598 texture: Implement R32I 2020-02-15 16:26:50 -03:00
ReinUsesLisp
518a6182f9 maxwell_3d: Unify draw methods
Pass instanced state of a draw invocation as an argument instead of
having two separate virtual methods.
2020-02-14 18:09:40 -03:00
ReinUsesLisp
4364492b95 query_cache: Address feedback 2020-02-14 17:38:27 -03:00
ReinUsesLisp
aaf68dc10b vk_query_cache: Implement generic query cache on Vulkan 2020-02-14 17:38:27 -03:00
ReinUsesLisp
1b2a6980f5 query_cache: Abstract OpenGL implementation
Abstract the current OpenGL implementation into the VideoCommon
namespace and reimplement it on top of that. Doing this avoids repeating
code and logic in the Vulkan implementation.
2020-02-14 17:38:27 -03:00
ReinUsesLisp
d8a42816d7 gl_query_cache: Optimize query cache
Use a custom cache instead of relying on a ranged cache.
2020-02-14 17:38:27 -03:00
ReinUsesLisp
339a227a5e gl_query_cache: Implement host queries using a deferred cache
Instead of waiting immediately for executed commands, defer the query
until the guest CPU reads it. This way we get closer to what the guest
program is doing.

To archive this we have to build a dependency queue, because host APIs
(like OpenGL and Vulkan) use ranged queries instead of counters like
NVN.

Waiting for queries implicitly uses fences and this requires a command
being queued, otherwise the driver will lock waiting until a timeout. To
fix this when there are no commands queued, we explicitly call glFlush.
2020-02-14 17:33:13 -03:00
ReinUsesLisp
9d7d67501f gl_rasterizer: Sort method declarations 2020-02-14 17:27:17 -03:00
ReinUsesLisp
7129efe9b2 gl_rasterizer: Add queued commands counter
Keep track of the queued OpenGL commands that can signal a fence if
waited on. As a side effect, we avoid calls to glFlush when no commands
are queued.
2020-02-14 17:27:17 -03:00
ReinUsesLisp
11206f8a28 maxwell_3d: Slow implementation of passed samples (query 21)
Implements GL_SAMPLES_PASSED by waiting immediately for queries.
2020-02-14 17:27:17 -03:00
ReinUsesLisp
3603c2f559 gl_resource_manager: Add managed query class 2020-02-13 22:25:55 -03:00
ReinUsesLisp
8449d0cf4e gl_rasterizer: Use the least generic OpenGL draw function possible
This may help some implementations.
2020-02-13 21:55:21 -03:00
bunnei
840326a322 Merge pull request #3376 from ReinUsesLisp/point-sprite
gl_rasterizer: Implement GL_POINT_SPRITE
2020-02-11 08:26:07 -05:00
bunnei
61e441192f Merge pull request #3378 from ReinUsesLisp/uscaled
maxwell_to_gl: Implement R8G8_USCALED
2020-02-07 22:55:52 -05:00
bunnei
1841589251 Merge pull request #3362 from ReinUsesLisp/fix-instanced
gl_rasterizer: Fix instanced draw arrays
2020-02-06 21:39:59 -05:00
ReinUsesLisp
48a1e6461b maxwell_to_gl: Implement R8G8_USCALED 2020-02-04 21:32:36 -03:00
ReinUsesLisp
e98ec35845 maxwell_to_gl: Reduce unimplemented formats to LOG_ERROR 2020-02-04 21:32:08 -03:00
ReinUsesLisp
3c7276cd1a gl_rasterizer: Implement GL_POINT_SPRITE
OpenGL core defaults to GL_POINT_SPRITE, meanwhile on OpenGL
compatibility we have to explicitly enable it. This fixes
gl_PointCoord's behaviour.
2020-02-04 15:19:45 -03:00
bunnei
1de7f0beeb Merge pull request #3282 from FernandoS27/indexed-samplers
Partially implement Indexed samplers in general and specific code in GLSL
2020-02-01 20:41:40 -05:00