Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
Was using 32bit integer pointers instead of 16bits.
|
|
|
|
Due to the u_format.csv changes the unrolled code generator was being used
for formats it didn't support.
Bring some bugfixes from u_format_access.py too.
|
|
|
|
The code which converts/copies color tiles to the linear layout has
been rewritten. There's less arithmetic and better loop unrolling,
and possibly a better memory access pattern.
Some demos, like gears, are about 20% faster now.
|
|
Incorrect rendering until the interpolation code generation is updated.
|
|
This is just a temporary change until we code generate the tile read/write
functions in runtime. The new code avoids an extra memcpy that exists in
u_tile.c functions, from which lp_tile_soa.c was originally based.
This achieves up to 5% improvement, particularly in frames with
little geometry overlap.
|