17:46 haasn: VkMemoryRequirements.alignment returns 16, does that mean I can update sparse bindings at 16-byte granularity?!
17:46 haasn: that seems a bit.. low
17:47 haasn: what would the performance impact be of updating, say ~1k 16-byte buffer memory bindings?
17:48 haasn: I'm wondering whether I can replace a memcpy by rebinds with small granularity (I need e.g. 64x64 regions to be rebound, but this is a linear buffer so that requires 64 different bind operations)
17:48 haasn: unfortunately the standard 2D image binding granularity of 256x256 is too coarse for my application
17:49 haasn: so if I have a 1920*1080 image consisting of ~500 distinct 64x64 blocks, of which say 100 need to be memcpy'd (and the other 400 are processed by a compute shader)
17:50 haasn: that's 100 64x64 regions = 100*64 = 6400 bindings
17:50 haasn: probably too many to do in any reasonable amount of time?
18:20 haasn: heh... sizeof(VkSparseMemoryBind) = 40
18:21 haasn: at that point reading and writing the sparse memory bind struct is going to take more memory bandwidth than the memcpy it's saving
18:21 haasn: nvm
19:46 airlied: haasn: oretty sure sparse has another limit
19:46 airlied: and in general it should be page sized