[libre-riscv-dev] [Bug 91] Design and implement texturing opcodes for 3D graphics
bugzilla-daemon at libre-riscv.org
bugzilla-daemon at libre-riscv.org
Wed Jun 5 06:09:01 BST 2019
http://bugs.libre-riscv.org/show_bug.cgi?id=91
Jacob Lifshay <programmerjake at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Design and implement |Design and implement
|Texturing 3D opcodes |texturing opcodes for 3D
| |graphics
--- Comment #2 from Jacob Lifshay <programmerjake at gmail.com> ---
This is one of the bigger tasks (several months of work) due to the sheer
number of different texture formats that need to be implemented, so it will
definitely need some budget, which I'll let Luke allocate.
Since I'm planning on implementing all the required formats in Rust as part of
the Vulkan driver (since they need to work on x86 as well), we can split that
out into a separate library to use for implementing the HW decoding as well. I
think I could write it in such a way that we can generate both nmigen and LLVM
IR from the same code. Additionally, the Rust code can be used as a Python
library for testing purposes.
I think we should support YCbCr textures, since they are commonly used in video
formats.
We will need to decide which compressed texture formats to support, Vulkan
requires supporting at least one of these three:
* BC formats (also called S3TC and DXTn/DXTC)
common on desktops
effectively required for OpenGL
oldest, I think the patents have expired in 2018
* ETC2 and EAC formats
required for OpenGL
not patented
http://www.phoronix.com/vr.php?view=MTE1ODU
* ASTC LDR formats
common on mobile devices
best compression ratios
royalty free
http://www.phoronix.com/vr.php?view=MTE1NDk
ASTC also has support for HDR formats.
If we can, I'd like to support all four.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-riscv-dev
mailing list