aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2020-02-27Create an "Advanced" tab in the graphics configuration tab and add ↵Morph
anisotropic filtering levels.
2020-02-27renderer_opengl: Reduce swap chain size to 3.bunnei
2020-02-26renderer_opengl: Use more concise lock syntax.bunnei
2020-02-26renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.bunnei
2020-02-25renderer_opengl: Create gl_framebuffer_data if empty.bunnei
2020-02-25renderer_opengl: Add texture mailbox support for presenter thread.bunnei
2020-02-25renderer_opengl: Add OGLRenderbuffer to resource/state management.bunnei
2020-02-25Merge pull request #3417 from ReinUsesLisp/r32ibunnei
texture: Implement R32I
2020-02-24Merge pull request #3425 from ReinUsesLisp/layered-framebufferbunnei
texture_cache: Implement layered framebuffer attachments
2020-02-24shader: Simplify indexed sampler usagesReinUsesLisp
2020-02-24video_core: Implement more scaler attribute formatsReinUsesLisp
While changing this, fix assert in vk_shader_decompiler. We now know scaled formats are expected to be float in shaders attributes.
2020-02-22Merge pull request #3422 from ReinUsesLisp/buffer-flushbunnei
surface_base: Implement texture buffer flushes
2020-02-19Merge pull request #3414 from ReinUsesLisp/maxwell-3d-drawbunnei
maxwell_3d: Unify draw methods
2020-02-19Merge pull request #3411 from ReinUsesLisp/specific-funcsbunnei
gl_rasterizer: Use the least generic OpenGL draw function possible
2020-02-16texture_cache: Implement layered framebuffer attachmentsReinUsesLisp
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-16surface_base: Implement texture buffer flushesReinUsesLisp
Implement downloads to guest memory from texture buffers on the generic cache and OpenGL.
2020-02-15texture: Implement R32IReinUsesLisp
2020-02-14maxwell_3d: Unify draw methodsReinUsesLisp
Pass instanced state of a draw invocation as an argument instead of having two separate virtual methods.
2020-02-14query_cache: Address feedbackReinUsesLisp
2020-02-14vk_query_cache: Implement generic query cache on VulkanReinUsesLisp
2020-02-14query_cache: Abstract OpenGL implementationReinUsesLisp
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-14gl_query_cache: Optimize query cacheReinUsesLisp
Use a custom cache instead of relying on a ranged cache.
2020-02-14gl_query_cache: Implement host queries using a deferred cacheReinUsesLisp
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-14gl_rasterizer: Sort method declarationsReinUsesLisp
2020-02-14gl_rasterizer: Add queued commands counterReinUsesLisp
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-14maxwell_3d: Slow implementation of passed samples (query 21)ReinUsesLisp
Implements GL_SAMPLES_PASSED by waiting immediately for queries.
2020-02-13gl_resource_manager: Add managed query classReinUsesLisp
2020-02-13gl_rasterizer: Use the least generic OpenGL draw function possibleReinUsesLisp
This may help some implementations.
2020-02-11Merge pull request #3376 from ReinUsesLisp/point-spritebunnei
gl_rasterizer: Implement GL_POINT_SPRITE
2020-02-07Merge pull request #3378 from ReinUsesLisp/uscaledbunnei
maxwell_to_gl: Implement R8G8_USCALED
2020-02-06Merge pull request #3362 from ReinUsesLisp/fix-instancedbunnei
gl_rasterizer: Fix instanced draw arrays
2020-02-04maxwell_to_gl: Implement R8G8_USCALEDReinUsesLisp
2020-02-04maxwell_to_gl: Reduce unimplemented formats to LOG_ERRORReinUsesLisp
2020-02-04gl_rasterizer: Implement GL_POINT_SPRITEReinUsesLisp
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-01Merge pull request #3282 from FernandoS27/indexed-samplersbunnei
Partially implement Indexed samplers in general and specific code in GLSL
2020-01-30gl_rasterizer: Fix instanced draw arraysReinUsesLisp
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-29Merge pull request #3350 from ReinUsesLisp/atombunnei
shader/memory: Implement ATOM.ADD
2020-01-29Merge pull request #3358 from ReinUsesLisp/implicit-texture-cachebunnei
gl_texture_cache: Silence implicit sign cast warnings
2020-01-28Merge pull request #3359 from ReinUsesLisp/assert-point-sizebunnei
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
2020-01-28gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSizeReinUsesLisp
This was implemented by a previous commit and it's no longer required.
2020-01-27gl_texture_cache: Silence implicit sign cast warningsReinUsesLisp
2020-01-26gl_texture_cache: Properly implement depth/stencil samplingReinUsesLisp
This addresses the long standing issue of compatibility vs. core profiles on OpenGL, properly implementing depth vs. stencil sampling depending on the texture swizzle.
2020-01-26shader/memory: Implement ATOM.ADDReinUsesLisp
ATOM operates atomically on global memory. For now only add ATOM.ADD since that's what was found in commercial games. This asserts for ATOM.ADD.S32 (handling the others as unimplemented), although ATOM.ADD.U32 shouldn't be any different. This change forces us to change the default type on SPIR-V storage buffers from float to uint. We could also alias the buffers, but it's simpler for now to just use uint. While we are at it, abstract the code to avoid repetition.
2020-01-25Shader_IR: Address feedback.Fernando Sahmkow
2020-01-24Shader_IR: Correct Custom Variable assignment.Fernando Sahmkow
2020-01-24Shader_IR: Propagate bindless index into the GL compiler.Fernando Sahmkow
2020-01-24Shader_IR: Implement Injectable Custom Variables to the IR.Fernando Sahmkow
2020-01-24GL Backend: Introduce indexed samplers into the GL backendFernando Sahmkow
2020-01-24Shader_IR: Store Bound buffer on Shader UsageFernando Sahmkow
2020-01-21gl_shader_cache: Disable fastmath on NvidiaReinUsesLisp