Vulkan doesn't support "DISCARD" like D3D9/D3D11 (and OpenGL but often it's broken) where we requested to map a write-only buffer and the API would discard the previous contents (thus allowing us to avoid a stall until the GPU is done with the region)
More...
|
| | VulkanDiscardBufferManager (VulkanDevice *device, VaoManager *vaoManager) |
| |
| | ~VulkanDiscardBufferManager () |
| |
| void | _getBlock (VulkanDiscardBuffer *discardBuffer) |
| | For internal use.
|
| |
| void | _notifyDeviceStalled (void) |
| |
| VulkanDiscardBuffer * | createDiscardBuffer (size_t bufferSize, uint16 alignment) |
| | Creates a buffer that supports discarding to hold the required size.
|
| |
| void | destroyDiscardBuffer (VulkanDiscardBuffer *discardBuffer) |
| | Destroys an existing VulkanDiscardBuffer, releasing its memory.
|
| |
| VulkanRawBuffer & | getBuffer (void) |
| |
| VulkanDevice * | getDevice (void) const |
| |
| VaoManager * | getVaoManager (void) const |
| |
| void | operator delete (void *ptr) |
| |
| void | operator delete (void *ptr, const char *, int, const char *) |
| |
| void | operator delete (void *ptr, void *) |
| |
| void | operator delete[] (void *ptr) |
| |
| void | operator delete[] (void *ptr, const char *, int, const char *) |
| |
| void * | operator new (size_t sz) |
| |
| void * | operator new (size_t sz, const char *file, int line, const char *func) |
| | operator new, with debug line info
|
| |
| void * | operator new (size_t sz, void *ptr) |
| | placement operator new
|
| |
| void * | operator new[] (size_t sz) |
| |
| void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
| | array operator new, with debug line info
|
| |
Vulkan doesn't support "DISCARD" like D3D9/D3D11 (and OpenGL but often it's broken) where we requested to map a write-only buffer and the API would discard the previous contents (thus allowing us to avoid a stall until the GPU is done with the region)
We need Discard for the v1 interfaces. So we need to emulate it. This class does exactly this.