Metal 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...
|
| | MetalDiscardBufferManager (MetalDevice *device, VaoManager *vaoManager) |
| |
| | ~MetalDiscardBufferManager () |
| |
| void | _getBlock (MetalDiscardBuffer *discardBuffer) |
| | For internal use. More...
|
| |
| void | _notifyDeviceStalled (void) |
| |
| MetalDiscardBuffer * | createDiscardBuffer (size_t bufferSize, uint16 alignment) |
| | Creates a buffer that supports discarding to hold the required size. More...
|
| |
| void | destroyDiscardBuffer (MetalDiscardBuffer *discardBuffer) |
| | Destroys an existing MetalDiscardBuffer, releasing its memory. More...
|
| |
| MetalDevice * | getDevice (void) const |
| |
| VaoManager * | getVaoManager (void) const |
| |
| void | operator delete (void *ptr) |
| |
| void | operator delete (void *ptr, void *) |
| |
| void | operator delete (void *ptr, const char *, int, const char *) |
| |
| void | operator delete[] (void *ptr) |
| |
| void | operator delete[] (void *ptr, const char *, int, const char *) |
| |
| void * | operator new (size_t sz, const char *file, int line, const char *func) |
| | operator new, with debug line info More...
|
| |
| void * | operator new (size_t sz) |
| |
| void * | operator new (size_t sz, void *ptr) |
| | placement operator new More...
|
| |
| void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
| | array operator new, with debug line info More...
|
| |
| void * | operator new[] (size_t sz) |
| |
Metal 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.