Today, we have a variety of formats that we directly support by out "rectangle" shader.
There's a few issues with this though:
What we need instead is a flexible system for arbitrary (potentially) on-gpu texture conversion.
The interface we want is something that gives you a buffer to write in your special-format bytes and then get back a gpu texture. How the texture is filled then is up to the system and may scheduled more gpu operations.
The immediate need for this is chroma conversions for video data, but everything we enable there, we'd also like to remove from the rectangle shader.
Open questions:
- exact interface
- does this live on the 2d texture manager? Makes sense, but gets bulky. Have it as a extendable sub-system "under" it instead?
- any alternatives to scheduling work on the "global" per-frame encoder?
- likely the easy go-to solution for the moment
- Output format limited to RGBA8(srgb)?
Today, we have a variety of formats that we directly support by out "rectangle" shader.
There's a few issues with this though:
What we need instead is a flexible system for arbitrary (potentially) on-gpu texture conversion.
The interface we want is something that gives you a buffer to write in your special-format bytes and then get back a gpu texture. How the texture is filled then is up to the system and may scheduled more gpu operations.
The immediate need for this is chroma conversions for video data, but everything we enable there, we'd also like to remove from the rectangle shader.
Open questions: