aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2020-02-19fix warningNguyen Dac Nam
2020-02-19clang-format fixNguyen Dac Nam
2020-02-19shader_conversion: add conversion I2F for ShortNguyen Dac Nam
2020-02-18Merge pull request #3410 from ReinUsesLisp/vk-draw-indexbunnei
vk_shader_decompiler: Fix vertex id and instance id
2020-02-18Merge pull request #3409 from ReinUsesLisp/host-queriesFernando Sahmkow
query_cache: Implement a query cache and query 21 (samples passed)
2020-02-15Revert "video_core: memory_manager: Use GPU interface for cache functions."bunnei
2020-02-14query_cache: Address feedbackReinUsesLisp
2020-02-14query_cache: Fix ambiguity in CacheAddr getterReinUsesLisp
2020-02-14query_cache: Add a recursive mutex for concurrent usageReinUsesLisp
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-14Merge pull request #3379 from ReinUsesLisp/cbuf-offsetbunnei
shader/decode: Fix constant buffer offsets
2020-02-13gl_resource_manager: Add managed query classReinUsesLisp
2020-02-13Merge pull request #3395 from FernandoS27/queriesbunnei
GPU: Refactor queries implementation and correct GPU Clock.
2020-02-13vk_shader_decompiler: Fix vertex id and instance idReinUsesLisp
Vulkan's VertexIndex and InstanceIndex don't match with hardware. This is because Nvidia implements gl_VertexID and gl_InstanceID. The math that relates these is: gl_VertexIndex = gl_BaseVertex + gl_VertexID gl_InstanceIndex = gl_InstanceIndex + gl_InstanceID To emulate it using what Vulkan's SPIR-V offers (the *Index variants) this commit substracts gl_Base* from gl_*Index to obtain the OpenGL and hardware's equivalent.
2020-02-13GPU: Address Feedback.Fernando Sahmkow
2020-02-11Merge pull request #3376 from ReinUsesLisp/point-spritebunnei
gl_rasterizer: Implement GL_POINT_SPRITE
2020-02-10GPU: Implement GPU Clock correctly.Fernando Sahmkow
2020-02-10Maxwell3D: Correct query reporting.Fernando Sahmkow
2020-02-09Merge pull request #3372 from ReinUsesLisp/fix-back-stencilbunnei
maxwell_3d: Fix stencil back mask
2020-02-08Merge pull request #3387 from bunnei/gpu-mpscqueuebunnei
gpu_thread: Use MPSCQueue for GPU commands.
2020-02-07gpu_thread: Use MPSCQueue for GPU commands.bunnei
- Necessary for multiple service threads.
2020-02-07video_core: memory_manager: Use GPU interface for cache functions.bunnei
2020-02-07Merge pull request #3378 from ReinUsesLisp/uscaledbunnei
maxwell_to_gl: Implement R8G8_USCALED
2020-02-07Merge pull request #3369 from ReinUsesLisp/shfbunnei
shader/shift: Implement SHF
2020-02-06Merge pull request #3362 from ReinUsesLisp/fix-instancedbunnei
gl_rasterizer: Fix instanced draw arrays
2020-02-05shader/decode: Fix constant buffer offsetsReinUsesLisp
Some instances were using cbuf34.offset instead of cbuf34.GetOffset(). This returned the an invalid offset. Address those instances and rename offset to "shifted_offset" to avoid future bugs.
2020-02-04maxwell_to_gl: Implement R8G8_USCALEDReinUsesLisp
2020-02-04maxwell_to_gl: Reduce unimplemented formats to LOG_ERRORReinUsesLisp
2020-02-04vk_rasterizer: Use noexcept variants of std::bitsetReinUsesLisp
Removes bounds checking from "texceptions" instances.
2020-02-04Merge pull request #3357 from ReinUsesLisp/bfi-rcbunnei
shader/bfi: Implement register-constant buffer variant
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-04Merge pull request #3356 from ReinUsesLisp/fcmpbunnei
shader/arithmetic: Implement FCMP
2020-02-03Merge pull request #3337 from ReinUsesLisp/vulkan-stagedbunnei
yuzu: Implement Vulkan frontend
2020-02-02maxwell_3d: Fix stencil back maskReinUsesLisp
2020-02-01shader: Remove curly braces initializers on shared pointersReinUsesLisp
2020-02-01Merge pull request #3282 from FernandoS27/indexed-samplersbunnei
Partially implement Indexed samplers in general and specific code in GLSL
2020-02-01shader/shift: Implement SHIFT_RIGHT_{IMM,R}ReinUsesLisp
Shifts a pair of registers to the right and returns the low register.
2020-02-01shader/shift: Implement SHF_LEFT_{IMM,R}ReinUsesLisp
Shifts a pair of registers to the left and returns the high register.
2020-01-30Merge pull request #3347 from ReinUsesLisp/local-membunnei
shader/memory: Implement LDL.S16, LDS.S16, STL.S16 and STS.S16
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-29yuzu: Implement Vulkan frontendReinUsesLisp
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing bits on Vulkan initialization.
2020-01-29settings: Add settings for graphics backendReinUsesLisp
2020-01-29shader/other: Fix skips for SYNC and BRKReinUsesLisp