[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


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

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
* ASTC LDR formats
    common on mobile devices
    best compression ratios
    royalty free

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