Jump to content

  • Log In with Google      Sign In   
  • Create Account

#Actualphantom

Posted 09 September 2013 - 12:56 AM

Ah, yes, that omission... it took me a while to spot it as well (mostly because I couldn't believe it WAS missing); but yes, as it stands ARB_sparse_texture lacks the GLSL extension for shader -> cpu feedback loops.

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.

#1phantom

Posted 09 September 2013 - 12:40 AM

Ah, yes, that omission... it took me a while to spot it as well (mostly because I couldn't believe it WAS missing); but yes, as it stands ARB_sparse_texture lacks the GLSL extension for shader -> cpu feedback loops.

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.

Combine sparse, memory controls and bindless and you've got one hell of a powerful set of features going forward.

PARTNERS