aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
2020-06-22Merge pull request #4110 from ReinUsesLisp/direct-upload-setsRodrigo Locatti
vk_update_descriptor: Upload descriptor sets data directly
2020-06-21Merge pull request #4122 from lioncash/hidebunnei
video_core: Eliminate some variable shadowing
2020-06-21Merge pull request #4126 from lioncash/noexceptbunnei
vulkan/wrapper: Remove noexcept from GetSurfaceCapabilitiesKHR()
2020-06-20Merge pull request #4120 from lioncash/arbbunnei
gl_arb_decompiler: Avoid several string copies
2020-06-20macro_jit_x64: Use ecx for shift registerMerryMage
shl/shr only accept cl as their second argument
2020-06-20Merge pull request #4125 from lioncash/macro-shiftmerry
macro_jit_x64: Amend readability of Compile_ExtractShiftLeftRegister()
2020-06-20Merge pull request #4123 from lioncash/unused-varmerry
macro_jit_x64: Remove unused variable
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_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.