- Feb 24, 2019
-
-
ReinUsesLisp authored
This manages two kinds of streaming buffers: one for unified memory models and one for dedicated GPUs. The first one skips the copy from the staging buffer to the real buffer, since it creates an unified buffer. This implementation waits for all fences to finish their operation before "invalidating". This is suboptimal since it should allocate another buffer or start searching from the beginning. There is room for improvement here. This could also handle AMD's "pinned" memory (a heap with 256 MiB) that seems to be designed for buffer streaming.
-
- Feb 22, 2019
-
-
ReinUsesLisp authored
The scheduler abstracts command buffer and fence management with an interface that's able to do OpenGL-like operations on Vulkan command buffers. It returns by value a command buffer and fence that have to be used for subsequent operations until Flush or Finish is executed, after that the current execution context (the pair of command buffers and fences) gets invalidated a new one must be fetched. Thankfully validation layers will quickly detect if this is skipped throwing an error due to modifications to a sent command buffer.
-
- Feb 19, 2019
-
-
ReinUsesLisp authored
A memory manager object handles the memory allocations for a device. It allocates chunks of Vulkan memory objects and then suballocates.
-
- Feb 14, 2019
-
-
ReinUsesLisp authored
VKResource is an interface that gets signaled by a fence when it is free to be reused.
-
- Feb 13, 2019
-
-
ReinUsesLisp authored
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).
-
- Feb 12, 2019
-
-
ReinUsesLisp authored
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).
-
- Feb 10, 2019
-
-
ReinUsesLisp authored
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.
-
- Feb 07, 2019
-
-
ReinUsesLisp authored
-
ReinUsesLisp authored
-
- Jan 30, 2019
-
-
ReinUsesLisp authored
-
- Jan 15, 2019
-
-
ReinUsesLisp authored
-
ReinUsesLisp authored
-
ReinUsesLisp authored
-
ReinUsesLisp authored
-
ReinUsesLisp authored
-
- Jan 08, 2019
-
-
ReinUsesLisp authored
-
- Nov 27, 2018
-
-
bunnei authored
- More accurate impl., fixes Undertale (among other games).
-
- Nov 25, 2018
-
-
ReinUsesLisp authored
-
- Nov 08, 2018
-
-
Lioncash authored
Ensures that destruction will always do the right thing in any context.
-
- Nov 06, 2018
-
-
Markus Wick authored
Those implementations are quite costly, so there is no need to inline them to the caller. Ressource deletion is often a performance bug, so in this way, we support to add breakpoints to them.
-
- Oct 30, 2018
-
-
ReinUsesLisp authored
-
- Oct 29, 2018
-
-
ReinUsesLisp authored
-
- Oct 04, 2018
-
-
ReinUsesLisp authored
-
- Sep 12, 2018
-
-
Subv authored
This engine writes data from a FIFO register into the configured address.
-
- Sep 11, 2018
-
-
FernandoS27 authored
-
- Sep 06, 2018
-
-
Lioncash authored
Without this, the header file won't show up by default within IDEs such as Visual Studio.
-
- Sep 05, 2018
-
-
Markus Wick authored
The idea of this cache is to avoid redundant uploads. So we are going to cache the uploaded buffers within the stream_buffer and just reuse the old pointers. The next step is to implement a VBO cache on GPU memory, but for now, I want to check the overhead of the cache management. Fetching the buffer over PCI-E should be quite fast.
-
- Aug 27, 2018
- Jun 18, 2018
-
-
bunnei authored
-
- Jun 12, 2018
-
-
Subv authored
Only tiled->linear and linear->tiled copies that aren't offsetted are supported for now. Queries are not supported. Swizzled copies are not supported.
-
- Apr 14, 2018
- Apr 01, 2018
-
-
Subv authored
The Ryujinx macro interpreter and envydis were used as reference. Macros are programs that are uploaded by the games during boot and can later be called by writing to their method id in a GPU command buffer.
-
- Mar 27, 2018
-
-
bunnei authored
-
- Mar 24, 2018
- Mar 20, 2018