summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | gl_shader_cache: std::move entries in CachedShader constructorGravatar Lioncash2020-01-141-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids several reallocations of std::vector instances where applicable.
| * | | | | | gl_shader_cache: Remove unused entries variable in BuildShader()Gravatar Lioncash2020-01-141-1/+0
| |/ / / / / | | | | | | | | | | | | | | | | | | Eliminates a few unnecessary constructions of std::vectors.
* | | | | | Merge pull request #3296 from Simek/hotkeys_resizeGravatar bunnei2020-01-141-0/+1
|\ \ \ \ \ \ | |/ / / / / |/| | | | | GUI/configure: resize hotkeys action column to fit content
| * | | | | GUI/configure: resize hotkeys column to contentGravatar Bartosz Kaszubowski2020-01-121-0/+1
| |/ / / /
* | | | | Merge pull request #3287 from ReinUsesLisp/ldg-stg-16Gravatar bunnei2020-01-142-34/+52
|\ \ \ \ \ | | | | | | | | | | | | shader_ir/memory: Implement u16 and u8 for STG and LDG
| * | | | | shader_ir/memory: Implement u16 and u8 for STG and LDGGravatar ReinUsesLisp2020-01-092-34/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the same technique we used for u8 on LDG, implement u16. In the case of STG, load memory and insert the value we want to set into it with bitfieldInsert. Then set that value.
* | | | | | Merge pull request #3288 from ReinUsesLisp/uncurse-aoffiGravatar bunnei2020-01-131-10/+6
|\ \ \ \ \ \ | | | | | | | | | | | | | | shader_ir/texture: Simplify AOFFI code
| * | | | | | shader_ir/texture: Simplify AOFFI codeGravatar ReinUsesLisp2020-01-091-10/+6
| |/ / / / /
* | | | | | Merge pull request #3290 from ReinUsesLisp/gl-clampGravatar bunnei2020-01-133-6/+11
|\ \ \ \ \ \ | | | | | | | | | | | | | | maxwell_to_vk: Implement GL_CLAMP hacking Nvidia's driver
| * | | | | | maxwell_to_vk: Implement GL_CLAMP hacking Nvidia's driverGravatar ReinUsesLisp2020-01-103-6/+11
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nvidia's driver defaults invalid enumerations to GL_CLAMP. Vulkan doesn't expose GL_CLAMP through its API, but we can hack it on Nvidia's driver using the internal driver defaults.
* | | | | | Merge pull request #3292 from degasus/heap_space_fixGravatar bunnei2020-01-131-2/+2
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | core/kernel: Fix GetTotalPhysicalMemoryUsed.
| * | | | | core/kernel: Fix GetTotalPhysicalMemoryUsed.Gravatar Markus Wick2020-01-111-2/+2
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | module._memory was already moved over to a new shared_ptr. So code_memory_size was not increased at all. This lowers the heap space and so saves a bit of memory, usually between 50 to 100 MB. This fixes a regression of c0a01f3adc466d07fc27020048e82cca60988970
* | | | | vk_compute_pass: Address feedbackGravatar Rodrigo Locatti2020-01-101-0/+2
| | | | | | | | | | | | | | | Comment hardcoded SPIR-V modules.
* | | | | vk_compute_pass: Add compute passes to emulate missing Vulkan featuresGravatar ReinUsesLisp2020-01-083-0/+416
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This currently only supports quad arrays and u8 indices. In the future we can remove quad arrays with a table written from the CPU, but this was used to bootstrap the other passes helpers and it was left in the code. The blob code is generated from the "shaders/" directory. Read the instructions there to know how to generate the SPIR-V.
* | | | | vk_shader_util: Add helper to build SPIR-V shadersGravatar ReinUsesLisp2020-01-083-0/+53
|/ / / /
* | | | Merge pull request #3279 from ReinUsesLisp/vk-pipeline-cacheGravatar Fernando Sahmkow2020-01-0810-10/+1172
|\ \ \ \ | |_|/ / |/| | | vk_pipeline_cache: Initial implementation
| * | | vk_pipeline_cache: Initial implementationGravatar ReinUsesLisp2020-01-062-1/+460
| | | | | | | | | | | | | | | | | | | | Given a pipeline key, this cache returns a pipeline abstraction (for graphics or compute).
| * | | vk_graphics_pipeline: Initial implementationGravatar ReinUsesLisp2020-01-064-0/+395
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This abstractio represents the state of the 3D engine at a given draw. Instead of changing individual bits of the pipeline how it's done in APIs like D3D11, OpenGL and NVN; on Vulkan we are forced to put everything together into a single, immutable object. It takes advantage of the few dynamic states Vulkan offers.
| * | | vk_compute_pipeline: Initial implementationGravatar ReinUsesLisp2020-01-064-0/+219
| | | | | | | | | | | | | | | | This abstraction represents a Vulkan compute pipeline.
| * | | vk_pipeline_cache: Add file and define descriptor update template fillerGravatar ReinUsesLisp2020-01-063-0/+67
| | | | | | | | | | | | | | | | | | | | This function allows us to share code between compute and graphics pipelines compilation.
| * | | fixed_pipeline_state: Add depth clampGravatar ReinUsesLisp2020-01-062-10/+18
| | | |
| * | | vk_rasterizer: Add placeholderGravatar ReinUsesLisp2020-01-062-0/+14
| | | |
* | | | Merge pull request #3272 from bunnei/vi-close-layerGravatar bunnei2020-01-075-11/+48
|\ \ \ \ | |/ / / |/| | | service: vi: Implement CloseLayer.
| * | | service: vi: Implement CloseLayer.Gravatar bunnei2020-01-045-11/+48
| |/ / | | | | | | | | | - Needed for Undertale.
* | | Merge pull request #3276 from ReinUsesLisp/pipeline-reqsGravatar bunnei2020-01-065-1/+345
|\ \ \ | | | | | | | | vk_update_descriptor/vk_renderpass_cache: Add pipeline cache dependencies
| * | | vk_renderpass_cache: Initial implementationGravatar ReinUsesLisp2020-01-063-0/+199
| | | | | | | | | | | | | | | | | | | | The renderpass cache is used to avoid creating renderpasses on each draw. The hashed structure is not currently optimized.
| * | | vk_update_descriptor: Initial implementationGravatar ReinUsesLisp2020-01-063-1/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The update descriptor is used to store in flat memory a large chunk of staging data used to update descriptor sets through templates. It provides a push interface to easily insert descriptors following the current pipeline. The order used in the descriptor update template has to be implicitly followed. We can catch bugs here using validation layers.
* | | | Merge pull request #3278 from ReinUsesLisp/vk-memory-managerGravatar bunnei2020-01-066-309/+415
|\ \ \ \ | | | | | | | | | | renderer_vulkan: Buffer cache, stream buffer and memory manager changes
| * | | | vk_stream_buffer/vk_buffer_cache: Avoid halting and use generic cacheGravatar ReinUsesLisp2020-01-064-62/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The stream buffer before this commit once it was full (no more bytes to write before looping) waiting for all previous operations to finish. This was a temporary solution and had a noticeable performance penalty in performance (from what a profiler showed). To avoid this mark with fences usages of the stream buffer and once it loops wait for them to be signaled. On average this will never wait. Each fence knows where its usage finishes, resulting in a non-paged stream buffer. On the other side, the buffer cache is reimplemented using the generic buffer cache. It makes use of the staging buffer pool and the new stream buffer.
| * | | | vk_memory_manager: Misc changesGravatar ReinUsesLisp2020-01-062-88/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Allocate memory in discrete exponentially increasing chunks until the 128 MiB threshold. Allocations larger thant that increase linearly by 256 MiB (depending on the required size). This allows to use small allocations for small resources. * Move memory maps to a RAII abstraction. To optimize for debugging tools (like RenderDoc) users will map/unmap on usage. If this ever becomes a noticeable overhead (from my profiling it doesn't) we can transparently move to persistent memory maps without harming the API, getting optimal performance for both gameplay and debugging. * Improve messages on exceptional situations. * Fix typos "requeriments" -> "requirements". * Small style changes.
| * | | | vk_buffer_cache: Temporarily remove buffer cacheGravatar ReinUsesLisp2020-01-062-226/+0
| |/ / / | | | | | | | | | | | | This is intended for a follow up commit to avoid circular dependencies.
* | | | Merge pull request #3277 from ReinUsesLisp/make-currentGravatar bunnei2020-01-061-9/+2
|\ \ \ \ | | | | | | | | | | yuzu/bootmanager: Remove {glx,wgl}MakeCurrent on SwapBuffers
| * | | | yuzu/bootmanager: Remove {glx,wgl}MakeCurrent on SwapBuffersGravatar ReinUsesLisp2020-01-061-9/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | MakeCurrent is a costly (according to Nsight's profiler it takes a tenth of a millisecond to complete), and we don't have a reason to call it because: - Qt no longer signals a warning if it's not called - yuzu no longer supports macOS
* | | | Merge pull request #3261 from degasus/page_tableGravatar bunnei2020-01-062-9/+17
|\ \ \ \ | |/ / / |/| | | core/memory + arm/dynarmic: Use a global offset within our arm page table.
| * | | core/memory + arm/dynarmic: Use a global offset within our arm page table.Gravatar Markus Wick2020-01-012-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | This saves us two x64 instructions per load/store instruction. TODO: Clean up our memory code. We can use this optimization here as well.
* | | | Merge pull request #3257 from degasus/no_busy_loopsGravatar bunnei2020-01-063-5/+9
|\ \ \ \ | | | | | | | | | | video_core: Block in WaitFence.
| * | | | video_core: Block in WaitFence.Gravatar Markus Wick2019-12-303-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function is called rarely and blocks quite often for a long time. So don't waste power and let the CPU sleep. This might also increase the performance as the other cores might be allowed to clock higher.
* | | | | Merge pull request #3264 from ReinUsesLisp/vk-descriptor-poolGravatar Fernando Sahmkow2020-01-053-0/+147
|\ \ \ \ \ | | | | | | | | | | | | vk_descriptor_pool: Initial implementation
| * | | | | Update src/video_core/renderer_vulkan/vk_descriptor_pool.cppGravatar Rodrigo Locatti2020-01-031-1/+1
| | | | | | | | | | | | | | | | | | Co-Authored-By: Mat M. <mathew1800@gmail.com>
| * | | | | vk_descriptor_pool: Initial implementationGravatar ReinUsesLisp2020-01-013-0/+147
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a large descriptor pool where we allocate all our descriptors from. It has to be wide enough to support any pipeline, hence its large numbers. If the descritor pool is filled, we allocate more memory at that moment. This way we can take advantage of permissive drivers like Nvidia's that allocate more descriptors than what the spec requires.
* | | | | Merge pull request #2945 from FernandoS27/fix-bcatGravatar bunnei2020-01-051-3/+17
|\ \ \ \ \ | | | | | | | | | | | | nifm: Only return that there's an internet connection when there's a BCATServer
| * | | | | nifm: Only return that there's an internet connection when there's a BCATServerGravatar Fernando Sahmkow2019-11-061-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This helps games that need internet for other purposes boot as the rest of our internet infrastructure is incomplete.
* | | | | | Merge pull request #3258 from FernandoS27/shader-amendGravatar bunnei2020-01-045-2/+52
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Shader_IR: add the ability to amend code in the shader ir.
| * | | | | Shader_IR: Address FeedbackGravatar Fernando Sahmkow2020-01-045-38/+19
| | | | | |
| * | | | | Shader_IR: add the ability to amend code in the shader ir.Gravatar Fernando Sahmkow2019-12-305-3/+72
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces a mechanism by which shader IR code can be amended and extended. This useful for track algorithms where certain information can derived from before the track such as indexes to array samplers.
* | | | | Merge pull request #3247 from FernandoS27/remap-fixGravatar bunnei2020-01-032-3/+5
|\ \ \ \ \ | | | | | | | | | | | | NvServices: Correct Ioctl Remap.
| * | | | | NvServices: Correct Ioctl Remap.Gravatar Fernando Sahmkow2019-12-252-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit corrects a padding value in Ioctl Remap that was actually an offset to the mapping address.
* | | | | | yuzu: Remove Maxwell debuggerGravatar ReinUsesLisp2020-01-0214-640/+0
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | This was carried from Citra and wasn't really used on yuzu. It also adds some runtime overhead. This commit removes it from yuzu's codebase.
* | | | | Merge pull request #3243 from ReinUsesLisp/topologiesGravatar bunnei2020-01-011-4/+18
|\ \ \ \ \ | |_|_|_|/ |/| | | | maxwell_to_gl: Implement missing primitive topologies
| * | | | maxwell_to_gl: Implement missing primitive topologiesGravatar ReinUsesLisp2019-12-221-4/+18
| | | | | | | | | | | | | | | | | | | | Many of these topologies are exclusively available in OpenGL.