aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2019-02-15Merge pull request #2123 from lioncash/coretiming-globalJames Rowe
core_timing: De-globalize core_timing facilities
2019-02-15core_timing: Convert core timing into a classLioncash
Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces.
2019-02-15renderer_opengl: respect the sRGB colorspace for the screenshot featurefearlessTobi
Previously, we were completely ignoring for screenshots whether the game uses RGB or sRGB. This resulted in screenshot colors that looked off for some titles.
2019-02-15gl_state: Synchronize gl_state even when state is disabledReinUsesLisp
There are some potential edge cases where gl_state may fail to track the state if a related state changes while the toggle is disabled or it didn't change. This addresses that.
2019-02-14Merge pull request #2112 from lioncash/shadowingbunnei
gl_rasterizer_cache: Get rid of variable shadowing
2019-02-14Merge pull request #2111 from ReinUsesLisp/fetch-fixbunnei
gl_shader_decompiler: Re-implement TLDS lod
2019-02-14vk_resource_manager: Implement a command buffer pool with VKFencedPoolReinUsesLisp
2019-02-14vk_resource_manager: Add VKFencedPool interfaceReinUsesLisp
Handles a pool of resources protected by fences. Manages resource overflow allocating more resources. This class is intended to be used through inheritance.
2019-02-14vk_resource_manager: Implement VKResourceManager and fence allocatorReinUsesLisp
CommitFence iterates a pool of fences until one is found. If all fences are being used at the same time, allocate more.
2019-02-14vk_resource_manager: Implement VKFenceWatchReinUsesLisp
A fence watch is used to keep track of the usage of a fence and protect a resource or set of resources without having to inherit from their handlers.
2019-02-14vk_resource_manager: Implement VKFenceReinUsesLisp
Fences take ownership of objects, protecting them from GPU-side or driver-side concurrent access. They must be commited from the resource manager. Their usage flow is: commit the fence from the resource manager, protect resources with it and use them, send the fence to an execution queue and Wait for it if needed and then call Release. Used resources will automatically be signaled when they are free to be reused.
2019-02-14vk_resource_manager: Add VKResource interfaceReinUsesLisp
VKResource is an interface that gets signaled by a fence when it is free to be reused.
2019-02-14Merge pull request #2113 from ReinUsesLisp/vulkan-basebunnei
vulkan: Add dependencies and device abstraction
2019-02-14shader_decompiler: Improve Accuracy of Attribute Interpolation.Fernando Sahmkow
2019-02-13rasterizer_cache_gl: Only do fast layered copy on the same format. AsFernando Sahmkow
glCopyImageSubData does not support different formats.
2019-02-12Merge pull request #2099 from greggameplayer/BGRA8-Framebuffer-Realbunnei
Implement BGRA8 framebuffer format
2019-02-12vk_device: Abstract device handling into a classReinUsesLisp
VKDevice contains all the data required to manage and initialize a physical device. Its intention is to be passed across Vulkan objects to query device-specific data (for example the logical device and the dispatch loader).
2019-02-12renderer_opengl: Remove reference to global system instanceLioncash
We already store a reference to the system instance that the renderer is created with, so we don't need to refer to the system instance via Core::System::GetInstance()
2019-02-12Merge pull request #2110 from lioncash/namespacebunnei
core_timing: Rename CoreTiming namespace to Core::Timing
2019-02-12Merge pull request #2104 from ReinUsesLisp/compute-assertbunnei
kepler_compute: Fixup assert and rename the engine
2019-02-12gl_rasterizer_cache: Remove unnecessary newlineLioncash
2019-02-12gl_rasterizer_cache: Get rid of variable shadowingLioncash
Avoids shadowing the members of the struct itself, which results in a -Wshadow warning.
2019-02-12renderer_vulkan: Add declarations fileReinUsesLisp
This file is intended to be included instead of vulkan/vulkan.hpp. It includes declarations of unique handlers using a dynamic dispatcher instead of a static one (which would require linking to a Vulkan library).
2019-02-12gl_shader_decompiler: Re-implement TLDS lodReinUsesLisp
2019-02-12core_timing: Rename CoreTiming namespace to Core::TimingLioncash
Places all of the timing-related functionality under the existing Core namespace to keep things consistent, rather than having the timing utilities sitting in its own completely separate namespace.
2019-02-12Merge pull request #2108 from FernandoS27/fix-ccbunnei
Fix incorrect value for CC bit in IADD
2019-02-12Merge pull request #2109 from FernandoS27/fix-f2ibunnei
Corrected F2I None mode to RoundEven.
2019-02-12Merge pull request #2068 from ReinUsesLisp/shader-cleanup-texturesbunnei
shader_ir: Clean texture management code
2019-02-11Corrected F2I None mode to RoundEven.Fernando Sahmkow
2019-02-11Fix incorrect value for CC bit in IADDFernando Sahmkow
2019-02-10kepler_compute: Fixup assert and rename enginesReinUsesLisp
When I originally added the compute assert I used the wrong documentation. This addresses that. The dispatch register was tested with homebrew against hardware and is triggered by some games (e.g. Super Mario Odyssey). What exactly is missing to get a valid program bound by this engine requires more investigation.
2019-02-09Implement BGRA8 framebuffer formatgreggameplayer
2019-02-08Merge pull request #1904 from bunnei/better-fermi-copybunnei
gl_rasterizer: Implement a more accurate fermi 2D copy.
2019-02-08Implement linear textures (#2089)Fernando Sahmkow
2019-02-08gl_rasterizer_cache: Fixup texture view parametersReinUsesLisp
These parameters were declared as constants and passed to glTextureView but then they were removed on a rabase. This addresses that mistake.
2019-02-07shader_ir: Remove F4 prefix to texture operationsReinUsesLisp
This was originally included because texture operations returned a vec4. These operations now return a single float and the F4 prefix doesn't mean anything.
2019-02-07shader_ir: Clean texture management codeReinUsesLisp
Previous code relied on GLSL parameter order (something that's always ill-formed on an IR design). This approach passes spatial coordiantes through operation nodes and array and depth compare values in the the texture metadata. It still contains an "extra" vector containing generic nodes for bias and component index (for example) which is still a bit ill-formed but it should be better than the previous approach.
2019-02-06Merge pull request #2083 from ReinUsesLisp/shader-ir-cbuf-trackingbunnei
shader/track: Add a more permissive global memory tracking
2019-02-06gl_rasterizer_cache: Mark surface copy destinations as modified.bunnei
2019-02-06gl_rasterizer: Implement a more accurate fermi 2D copy.bunnei
- This is a blit, use the blit registers.
2019-02-06gl_shader_disk_cache: Check LZ4 size limitFrederic L
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06gl_shader_disk_cache: Consider compressed size zero as an errorFrederic L
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06gl_shader_disk_cache: Use unordered containersReinUsesLisp
2019-02-06gl_shader_cache: Fixup GLSL unique identifiersReinUsesLisp
2019-02-06gl_shader_cache: Link loading screen with disk shader cache loadReinUsesLisp
2019-02-06gl_shader_cache: Set GL_PROGRAM_SEPARABLE to dumped shadersReinUsesLisp
i965 (and probably all mesa drivers) require GL_PROGRAM_SEPARABLE when using glProgramBinary. This is probably required by the standard but it's ignored by permisive proprietary drivers.
2019-02-06gl_shader_disk_cache: Pass core system as argument and guard against games ↵ReinUsesLisp
without title ids
2019-02-06gl_shader_disk_cache: Guard reads and writes against failureReinUsesLisp
2019-02-06gl_shader_disk_cache: Address miscellaneous feedbackReinUsesLisp
2019-02-06gl_shader_disk_cache: Pass return values returning instead of by parametersReinUsesLisp