Has anyone tried to implement the sparse textures? I've placed glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_SPARSE_ARB, GL_TRUE) into my code and it compiles fine but there does not seem to be anything shader specific written in the specs (similar to the AMD versions where you use sparseTexture(sampler, coord)).
OpenGL 4.4 spec is published
Moderators - Reputation: 5515
Posted 09 September 2013 - 12:40 AM
While annoying this doesn't render the extension useless it just means you have to manage things via corser CPU side controls rather than using a shader feedback loop (which, to be honest, for a streaming solution you'll want anyway so no foul there really).
Part of me wonders if this omission is due to an NV or Intel GPU weakness where their current hardware can do the virtual texturing bit just fine but can't do the feedback loop; probably because it pretty much requires a writable buffer to be bound to any pipeline stage to be completely viable for all situations something AMD can do but it seems NV can't/won't expose on some/all of their hardware (see D3D11.1 'uav on all pipeline stages' issue for NV)... and god knows about Intel.
Truth be told however this extension, and the more powerful AMD varient get more intresting once the tiled resource extension comes into play; I don't have a link to the pdf handy but basically you'll be able to reserve a buffer (say 128meg) and then allocate out of that tile sized resources to your sparse textures rather than relying on the driver's best guess as it currently stands. (edit: and now I have the link to hand! Hardware Virtual Textures has the details.)
Combine sparse, memory controls and bindless and you've got one hell of a powerful set of features going forward.
Edited by phantom, 09 September 2013 - 12:56 AM.
Moderators - Reputation: 8518
Posted 13 September 2013 - 05:10 PM
Part of me wonders if this omission is due to an NV or Intel GPU weakness where their current hardware can do the virtual texturing bit just fine but can't do the feedback loop;
Indeed, Nvidia supports the general virtual memory framework but not the shader feedback. Hence DX11.2 having two tiers for tiled resources, with the second tier having the shader extensions.
Edited by MJP, 13 September 2013 - 05:10 PM.