Salman Alshamrani
Salman Alshamrani
Since #5508 was merged, mipmap generation has regressed on Vulkan, and the likely culprit for breaking it here is the hacky use of `CopyTexture` on the rendering command list, as...
As part of making sense of sRGB colours. It should be explicitly shown whether `SRGBColour` is going to give a linear or sRGB colour, by getting rid of the implicit...
Been hanging on my list for a good while now. Have been testing with iOS simulator as I don't have the required accessory to connect a mouse to my phone....
Direct3D allows binding the same texture as both an SRV and UAV resource as long as the mipmap ranges differ between the two.
Xcode has been yelling about this for a while now but I haven't realised how bad the overhead is until I've profiled it myself. This PR reduces down all encoding...
- [ ] Depends on #497 for `MTLFramebuffer`/`MTLSwapchainFramebuffer` refactor Metal offers a [specific optimised storage mode](https://developer.apple.com/documentation/metal/mtlstoragemode/memoryless) on Apple GPUs for framebuffer attachments that are only used within a render pass...
This becomes very apparent when updating buffers without using blit commands, where 99% of the overhead comes from retrieving the pointer using `MTLBuffer.contents()`. Before: ...
["Private" storage mode](https://developer.apple.com/documentation/metal/mtlresourceoptions/1515324-storagemodeprivate) is better suited for buffers that are never accessed by the CPU, allowing Metal to apply optimisations on them. This would benefit any non-staging/non-dynamic buffers populated only...
Oversight from #439 Before:  (notice `BlendAttachmentDescription.Equals` at the very top with high memory footprint) After: 
A `GraphicsPipeline` in Veldrid translates to four states in Metal (`MTLRenderPipelineState`, `MTLComputePipelineState`, `MTLDepthStencilState`, and `ThreadsPerThreadgroup`). Multiple pipelines may be compiled to change certain states while keeping others as-is, this aims...