Commit Graph

2079 Commits

Author SHA1 Message Date
ReinUsesLisp 0b91f473a0 gl_state: Remove scissor test tracking 2020-02-28 17:00:23 -03:00
ReinUsesLisp 715ae82639 gl_state: Remove color mask tracking 2020-02-28 16:59:17 -03:00
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