0f343d32c4
gl_state: Remove primitive restart tracking
2020-02-28 16:51:45 -03:00
42708c762e
gl_state: Remove logic op tracker
2020-02-28 16:51:23 -03:00
915d73f3b8
gl_state: Remove blend color tracking
2020-02-28 16:50:58 -03:00
a0321b984f
gl_state: Remove polygon offset tracking
2020-02-28 16:49:20 -03:00
f646321dd0
gl_state: Remove alpha test tracking
2020-02-28 16:48:57 -03:00
c8f5f54a44
gl_state: Remove cull mode tracking
2020-02-28 16:48:23 -03:00
925521da5f
gl_state: Remove front face tracking
2020-02-28 16:47:59 -03:00
d2d5554296
gl_state: Remove point size tracking
2020-02-28 16:39:44 -03:00
b95f064b51
gl_rasterizer: Add oglEnablei helper
2020-02-28 16:39:44 -03:00
1698143a1d
gl_rasterizer: Add OpenGL enable/disable helper
2020-02-28 16:39:44 -03:00
96ac3d518a
gl_rasterizer: Remove dirty flags
2020-02-28 16:39:27 -03:00
5056d23d0d
renderer_opengl: Fix SRGB presentation frame tracking.
...
- Fixes SRGB in Super Smash Bros. Ultimate.
2020-02-28 01:13:38 -05:00
ebbfe73557
renderer_opengl: Reduce swap chain size to 3.
2020-02-27 19:50:17 -05:00
a17214baea
renderer_opengl: Use more concise lock syntax.
2020-02-26 18:35:35 -05:00
aef159354c
renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.
2020-02-26 18:28:50 -05:00
795893a9a5
renderer_opengl: Create gl_framebuffer_data if empty.
2020-02-25 21:23:02 -05:00
dc672ca4b3
renderer_opengl: Add texture mailbox support for presenter thread.
2020-02-25 21:22:59 -05:00
add2c38b73
renderer_opengl: Add OGLRenderbuffer to resource/state management.
2020-02-25 21:22:58 -05:00
78ab2e0474
Merge pull request #3417 from ReinUsesLisp/r32i
...
texture: Implement R32I
2020-02-25 14:08:45 -05:00
e22ad52cdb
Merge pull request #3425 from ReinUsesLisp/layered-framebuffer
...
texture_cache: Implement layered framebuffer attachments
2020-02-24 10:14:50 -05:00
754aac331f
Merge pull request #3422 from ReinUsesLisp/buffer-flush
...
surface_base: Implement texture buffer flushes
2020-02-22 23:09:50 -05:00
b2bc7682b4
Merge pull request #3414 from ReinUsesLisp/maxwell-3d-draw
...
maxwell_3d: Unify draw methods
2020-02-19 16:13:50 -05:00
c8261a1a57
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
6a0220b2e1
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
fd62bdf377
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
14c2a4a2ec
texture: Implement R32I
2020-02-15 16:26:50 -03:00
91aa58e410
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
6d3a046caa
query_cache: Address feedback
2020-02-14 17:38:27 -03:00
bcd348f238
vk_query_cache: Implement generic query cache on Vulkan
2020-02-14 17:38:27 -03:00
c31382ced5
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
73d2d3342d
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
aae8c180cb
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
ef9920e164
gl_rasterizer: Sort method declarations
2020-02-14 17:27:17 -03:00
fe1238be7a
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
2b58652f08
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
3217400dd1
gl_resource_manager: Add managed query class
2020-02-13 22:25:55 -03:00
336a4f8e99
gl_rasterizer: Use the least generic OpenGL draw function possible
...
This may help some implementations.
2020-02-13 21:55:21 -03:00
37f1cf8cbd
Merge pull request #3376 from ReinUsesLisp/point-sprite
...
gl_rasterizer: Implement GL_POINT_SPRITE
2020-02-11 08:26:07 -05:00
90bda66028
Merge pull request #3378 from ReinUsesLisp/uscaled
...
maxwell_to_gl: Implement R8G8_USCALED
2020-02-07 22:55:52 -05:00
09d766d357
Merge pull request #3362 from ReinUsesLisp/fix-instanced
...
gl_rasterizer: Fix instanced draw arrays
2020-02-06 21:39:59 -05:00
8bb9eef97b
maxwell_to_gl: Implement R8G8_USCALED
2020-02-04 21:32:36 -03:00
c81c361e82
maxwell_to_gl: Reduce unimplemented formats to LOG_ERROR
2020-02-04 21:32:08 -03:00
7da52673d0
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
b5bbe7e752
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
b69321650e
gl_rasterizer: Fix instanced draw arrays
...
glDrawArrays was being used when the draw had a base instance specified.
This commit removes the draw parameters abstraction and fixes the
mentioned issue.
2020-01-30 02:22:00 -03:00
2db7adc42a
Merge pull request #3350 from ReinUsesLisp/atom
...
shader/memory: Implement ATOM.ADD
2020-01-29 16:49:54 -05:00
91f79225e7
Merge pull request #3358 from ReinUsesLisp/implicit-texture-cache
...
gl_texture_cache: Silence implicit sign cast warnings
2020-01-29 11:23:50 -05:00
c457e47297
Merge pull request #3359 from ReinUsesLisp/assert-point-size
...
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
2020-01-28 15:19:51 -05:00
8178fe8960
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
...
This was implemented by a previous commit and it's no longer required.
2020-01-28 16:32:30 -03:00
abae795986
gl_texture_cache: Silence implicit sign cast warnings
2020-01-27 20:59:11 -03:00