Age | Commit message (Collapse) | Author |
|
|
|
Conflicts:
src/gallium/auxiliary/util/u_format.csv
src/gallium/auxiliary/util/u_format_access.py
src/gallium/auxiliary/util/u_format_pack.py
|
|
|
|
|
|
they won't generate any useful conversion code for some of the new formats
but at least don't assert. Also needed some more hacks so they don't generate
code for some of the new formats, as gcc was not impressed.
Also declare unused channels as void, and change the scripts to not fail if
the first channel happened to be unused.
Needs serious fixing.
|
|
|
|
Should work correctly for all pixel formats except SRGB formats.
Generated code made much simpler by defining the pixel format as
a C structure. For example this is the generated structure for
PIPE_FORMAT_B6UG5SR5S_NORM:
union util_format_b6ug5sr5s_norm {
uint16_t value;
struct {
int r:5;
int g:5;
unsigned b:6;
} chan;
};
Not used everywhere yet because it seems compiled code is slower than
bitshift arithmetic by some misterious reason. So we should generate
bitshift arithmetic at least for the simple UNORM pixel formats.
|
|
|
|
|
|
Too confusing. I now can get the same information through other means.
|
|
|
|
|
|
|
|
It should be 255 for ubytes, and not 1.
Thanks Michal for spotting this.
|
|
This has several advantages over the u_
- not hand written
- no intermediate memcpy of raw pixels
- supports 4 ubytes in addition to floats
- no need to pass a pipe_transfer
It also has (hopefully temporary) limitations:
- no support for YUV
- no support for SRGB
|