aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2020-06-19Merge pull request #4099 from MerryMage/macOS-buildbunnei
Fix compilation on macOS
2020-06-19gl_arb_decompiler: Avoid several string copiesLioncash
Variables that are marked as const cannot have the move constructor invoked when returning from a function (the move constructor requires a non-const variable so it can "steal" the resources from it.
2020-06-19vulkan/wrapper: Remove noexcept from GetSurfaceCapabilitiesKHR()Lioncash
Check() can throw an exception if the Vulkan result isn't successful. We remove the check so that std::terminate isn't outright called and allows for better debugging (should it ever actually fail).
2020-06-19macro_jit_x64: Correct readability of Compile_ExtractShiftLeftImmediate()Lioncash
Previously dst wasn't being used.
2020-06-19macro_jit_x64: Correct readability of Compile_ExtractShiftLeftRegister()Lioncash
Previously dst wasn't being used.
2020-06-19macro_jit_x64: Remove unused variableLioncash
Removes a completely unused label and marks another variable as unused, given it seems like it has potential uses in the future.
2020-06-19memory_manager: Eliminate variable shadowingLioncash
Renames some variables to prevent ones in inner scopes from shadowing outer-scoped variables. The Copy* functions have no shadowing, but we rename them anyways to remain consistent with the other functions.
2020-06-19macro_jit_x64: Eliminate variable shadowing in Compile_ProcessResult()Lioncash
We can reduce the capture scope so that it's not possible for both "reg" variables to clash with one another. While we're at it, we can prevent unnecessary copies while we're at it.
2020-06-19buffer_cache: Eliminate local variable shadowingLioncash
We can just make use of the instance in the scope above this one.
2020-06-19Merge pull request #4087 from MerryMage/macrojit-inline-Readbunnei
macro_jit_x64: Inline Engines::Maxwell3D::GetRegisterValue
2020-06-19macro_jit_x64: Remove unused function ReadMerryMage
2020-06-18Merge pull request #4090 from MerryMage/macrojit-bugsbunnei
macro_jit_x64: Optimization correctness
2020-06-18vk_rasterizer: Don't preserve contents on full screen clearsReinUsesLisp
There's no need to load contents from the CPU when a clear resets all the contents of the underlying memory. This is already implemented on OpenGL and the texture cache.
2020-06-18vk_update_descriptor: Upload descriptor sets data directlyReinUsesLisp
Instead of copying to a temporary payload before sending the update task to the worker thread, insert elements to the payload directly.
2020-06-18vk_rasterizer: BindTransformFeedbackBuffersEXT accepts a size of type ↵MerryMage
VkDeviceSize
2020-06-18renderer_vulkan: Fix macOS GetBundleDirectory referenceMerryMage
2020-06-18memory_util: boost hashes are size_tMerryMage
* boost::hash_value returns a size_t * boost::hash_combine takes a size_t& argument
2020-06-18Rename PAGE_SHIFT to PAGE_BITSMerryMage
macOS header files #define PAGE_SHIFT
2020-06-18vk_sampler_cache: Emulate GL_LINEAR/NEAREST minification filtersMorph
Emulate GL_LINEAR/NEAREST minification filters using minLod = 0 and maxLod = 0.25 during sampler creation
2020-06-18maxwell_to_vk: Reorder filter cases and correct mipmap_filter=NoneMorph
maxwell_to_vk: Reorder filtering modes to start with None, then Nearest, then Linear. maxwell_to_vk: Logs filter modes under UNREACHABLE_MSG instead of UNIMPLEMENTED_MSG, since any unknown filter modes are invalid and not unimplemented. maxwell_to_vk: Return VK_SAMPLER_MIPMAP_MODE_NEAREST instead of VK_SAMPLER_MIPMAP_MODE_LINEAR when mipmap_filter is None with the description from the VkSamplerCreateInfo(3) man page.
2020-06-18maxwell_to_gl: Miscellaneous changesMorph
maxwell_to_gl: Log unimplemented features under UNIMPLEMENTED_MSG instead of LOG_ERROR to bring into parity with maxwell_to_vk maxwell_to_gl: Deduplicate logging in VertexType(), merging them into one. maxwell_to_gl: Return GL_NEAREST instead of GL_LINEAR if an unknown texture filter mode is encountered. maxwell_to_gl: Log the mipmap filter mode if an unknown value is passed in. maxwell_to_gl: Reorder filtering modes to start with None, then Nearest, then Linear.
2020-06-18Merge pull request #4092 from Morph1984/image-bindingsRodrigo Locatti
gl_device: Reserve 4 image bindings for fragment stage
2020-06-17macro_jit_x64: Inline Engines::Maxwell3D::GetRegisterValueMerryMage
2020-06-17Merge pull request #4086 from MerryMage/abibunnei
xbyak_abi: Cleanup
2020-06-17macro_jit_x64: Optimization implicitly assumes same destinationMerryMage
2020-06-17macro_jit_x64: Should not skip zero registers for certain ALU opsMerryMage
The code generated for these ALU ops assume src_a and src_b are always valid.
2020-06-16Merge pull request #4089 from MerryMage/macrojit-cleanup-1bunnei
macro_jit_x64: Cleanup
2020-06-16Merge pull request #4041 from ReinUsesLisp/arb-decompbunnei
gl_arb_decompiler: Implement an assembly shader decompiler
2020-06-16gl_device: Reserve at least 4 image bindings for fragment stageMorph
Due to the limitation of GL_MAX_IMAGE_UNITS being low (8) on Intel's and Nvidia's proprietary drivers, we have to reserve an appropriate amount of image bindings for each of the stages. So far games have been observed to use 4 image bindings on the fragment stage (Kirby Star Allies) and 1 on the vertex stage (TWD series). No games thus far in my limited testing used more than 4 images concurrently and across all currently active programs. This fixes shader compilation errors on Kirby Star Allies on OpenGL (GLSL/GLASM)
2020-06-15Merge pull request #4066 from ReinUsesLisp/shared-ptr-bufRodrigo Locatti
buffer_cache: Avoid passing references of shared pointers and misc style changes
2020-06-15macro_jit_x64: Remove NEXT_PARAMETERMerryMage
Not required, as PARAMETERS can just be incremented directly.
2020-06-15macro_jit_x64: Remove unused function Compile_WriteCarryMerryMage
2020-06-15macro_jit_x64: Select better registersMerryMage
All registers are now callee-save registers. RBX and RBP selected for STATE and RESULT because these are most commonly accessed; this is to avoid the REX prefix. RBP not used for STATE because there are some SIB restrictions, RBX emits smaller code.
2020-06-15macro_jit_x64: Remove REGISTERSMerryMage
Unnecessary since this is just an offset from STATE.
2020-06-15macro_jit_x64: Remove JITState::parametersMerryMage
This can be passed in as an argument instead.
2020-06-15macro_jit_x64: Remove METHOD_ADDRESS_64MerryMage
Unnecessary variable.
2020-06-15macro_jit_x64: Remove RESULT_64MerryMage
This Reg64 codepath has the exact same behaviour as the Reg32 one.
2020-06-15xbyak_abi: Remove *GPS variants of stack manipulation functionsMerryMage
2020-06-15video_core/macro_jit_x64: Remove initializer in member variableReinUsesLisp
Fix build time issues on gcc. Confirmed through asan that avoiding this initialization is safe.
2020-06-14Merge pull request #4064 from ReinUsesLisp/invalidate-buffersbunnei
gl_rasterizer: Mark vertex buffers as dirty after buffer cache invalidation
2020-06-13Merge pull request #4049 from ReinUsesLisp/separate-samplersbunnei
shader/texture: Join separate image and sampler pairs offline
2020-06-12Merge pull request #3986 from ReinUsesLisp/shader-cachebunnei
shader_cache: Implement a generic runtime shader cache
2020-06-11gl_arb_decompiler: Implement FSwizzleAddReinUsesLisp
2020-06-11gl_arb_decompiler: Implement an assembly shader decompilerReinUsesLisp
Emit code compatible with NV_gpu_program5. This should emit code compatible with Fermi, but it wasn't tested on that architecture. Pascal has some issues not present on Turing GPUs.
2020-06-09Merge pull request #4027 from ReinUsesLisp/3d-slicesbunnei
texture_cache: Implement rendering to 3D textures
2020-06-09buffer_cache: Avoid passing references of shared pointers and misc style changesReinUsesLisp
Instead of using as template argument a shared pointer, use the underlying type and manage shared pointers explicitly. This can make removing shared pointers from the cache more easy. While we are at it, make some misc style changes and general improvements (like insert_or_assign instead of operator[] + operator=).
2020-06-08gl_rasterizer: Mark vertex buffers as dirty after buffer cache invalidationReinUsesLisp
Vertex buffers bindings become invalid after the stream buffer is invalidated. We were originally doing this, but it got lost at some point. - Fixes Animal Crossing: New Horizons, but it affects everything.
2020-06-08buffer_cache: Return stream buffer invalidation in Map instead of UnmapReinUsesLisp
We have to invalidate whatever cache is being used before uploading the data, hence it makes more sense to return this on Map instead of Unmap.
2020-06-08Merge pull request #4040 from ReinUsesLisp/nv-transform-feedbackbunnei
gl_rasterizer: Use NV_transform_feedback for XFB on assembly shaders
2020-06-08Merge pull request #4052 from ReinUsesLisp/debug-outputbunnei
renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabled