gallium/util: Remove pipe_get_tile_z/put_tile_z.
The previous caller wasn't using it as tiled, just row-at-a-time, and didn't want the clipping (since copytexsubimage comes in clipped). If someone wanted these functions again in the future, they should be rewritten on u_format_pack/unpack. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2744>
This commit is contained in:
@@ -583,257 +583,6 @@ pipe_put_tile_ui_format(struct pipe_transfer *pt,
|
||||
FREE(packed);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a block of Z values, converted to 32-bit range.
|
||||
*/
|
||||
void
|
||||
pipe_get_tile_z(struct pipe_transfer *pt,
|
||||
const void *src,
|
||||
uint x, uint y, uint w, uint h,
|
||||
uint *z)
|
||||
{
|
||||
const uint dstStride = w;
|
||||
const ubyte *map = src;
|
||||
uint *pDest = z;
|
||||
uint i, j;
|
||||
enum pipe_format format = pt->resource->format;
|
||||
|
||||
if (u_clip_tile(x, y, &w, &h, &pt->box))
|
||||
return;
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
{
|
||||
const uint *ptrc
|
||||
= (const uint *)(map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
memcpy(pDest, ptrc, 4 * w);
|
||||
pDest += dstStride;
|
||||
ptrc += pt->stride/4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
{
|
||||
const uint *ptrc
|
||||
= (const uint *)(map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 24-bit Z to 32-bit Z */
|
||||
pDest[j] = (ptrc[j] << 8) | ((ptrc[j] >> 16) & 0xff);
|
||||
}
|
||||
pDest += dstStride;
|
||||
ptrc += pt->stride/4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
{
|
||||
const uint *ptrc
|
||||
= (const uint *)(map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 24-bit Z to 32-bit Z */
|
||||
pDest[j] = (ptrc[j] & 0xffffff00) | ((ptrc[j] >> 24) & 0xff);
|
||||
}
|
||||
pDest += dstStride;
|
||||
ptrc += pt->stride/4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
{
|
||||
const ushort *ptrc
|
||||
= (const ushort *)(map + y * pt->stride + x*2);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 16-bit Z to 32-bit Z */
|
||||
pDest[j] = (ptrc[j] << 16) | ptrc[j];
|
||||
}
|
||||
pDest += dstStride;
|
||||
ptrc += pt->stride/2;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
{
|
||||
const float *ptrc = (const float *)(map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert float Z to 32-bit Z */
|
||||
if (ptrc[j] <= 0.0) {
|
||||
pDest[j] = 0;
|
||||
}
|
||||
else if (ptrc[j] >= 1.0) {
|
||||
pDest[j] = 0xffffffff;
|
||||
}
|
||||
else {
|
||||
double z = ptrc[j] * 0xffffffff;
|
||||
pDest[j] = (uint) z;
|
||||
}
|
||||
}
|
||||
pDest += dstStride;
|
||||
ptrc += pt->stride/4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||
{
|
||||
const float *ptrc = (const float *)(map + y * pt->stride + x*8);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert float Z to 32-bit Z */
|
||||
if (ptrc[j] <= 0.0) {
|
||||
pDest[j*2] = 0;
|
||||
}
|
||||
else if (ptrc[j] >= 1.0) {
|
||||
pDest[j*2] = 0xffffffff;
|
||||
}
|
||||
else {
|
||||
double z = ptrc[j] * 0xffffffff;
|
||||
pDest[j*2] = (uint) z;
|
||||
}
|
||||
}
|
||||
pDest += dstStride;
|
||||
ptrc += pt->stride/4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
pipe_put_tile_z(struct pipe_transfer *pt,
|
||||
void *dst,
|
||||
uint x, uint y, uint w, uint h,
|
||||
const uint *zSrc)
|
||||
{
|
||||
const uint srcStride = w;
|
||||
const uint *ptrc = zSrc;
|
||||
ubyte *map = dst;
|
||||
uint i, j;
|
||||
enum pipe_format format = pt->resource->format;
|
||||
|
||||
if (u_clip_tile(x, y, &w, &h, &pt->box))
|
||||
return;
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_Z32_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
memcpy(pDest, ptrc, 4 * w);
|
||||
pDest += pt->stride/4;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
/*assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);*/
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 32-bit Z to 24-bit Z, preserve stencil */
|
||||
pDest[j] = (pDest[j] & 0xff000000) | ptrc[j] >> 8;
|
||||
}
|
||||
pDest += pt->stride/4;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z24X8_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 32-bit Z to 24-bit Z (0 stencil) */
|
||||
pDest[j] = ptrc[j] >> 8;
|
||||
}
|
||||
pDest += pt->stride/4;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
/*assert((pt->usage & PIPE_TRANSFER_READ_WRITE) == PIPE_TRANSFER_READ_WRITE);*/
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 32-bit Z to 24-bit Z, preserve stencil */
|
||||
pDest[j] = (pDest[j] & 0xff) | (ptrc[j] & 0xffffff00);
|
||||
}
|
||||
pDest += pt->stride/4;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_X8Z24_UNORM:
|
||||
{
|
||||
uint *pDest = (uint *) (map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 32-bit Z to 24-bit Z (0 stencil) */
|
||||
pDest[j] = ptrc[j] & 0xffffff00;
|
||||
}
|
||||
pDest += pt->stride/4;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z16_UNORM:
|
||||
{
|
||||
ushort *pDest = (ushort *) (map + y * pt->stride + x*2);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 32-bit Z to 16-bit Z */
|
||||
pDest[j] = ptrc[j] >> 16;
|
||||
}
|
||||
pDest += pt->stride/2;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z32_FLOAT:
|
||||
{
|
||||
float *pDest = (float *) (map + y * pt->stride + x*4);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 32-bit integer Z to float Z */
|
||||
const double scale = 1.0 / 0xffffffffU;
|
||||
pDest[j] = (float) (ptrc[j] * scale);
|
||||
}
|
||||
pDest += pt->stride/4;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
|
||||
{
|
||||
float *pDest = (float *) (map + y * pt->stride + x*8);
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
/* convert 32-bit integer Z to float Z */
|
||||
const double scale = 1.0 / 0xffffffffU;
|
||||
pDest[j*2] = (float) (ptrc[j] * scale);
|
||||
}
|
||||
pDest += pt->stride/4;
|
||||
ptrc += srcStride;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
pipe_get_tile_ui_format(struct pipe_transfer *pt,
|
||||
const void *src,
|
||||
|
||||
@@ -99,19 +99,6 @@ pipe_put_tile_rgba_format(struct pipe_transfer *pt,
|
||||
enum pipe_format format,
|
||||
const float *p);
|
||||
|
||||
|
||||
void
|
||||
pipe_get_tile_z(struct pipe_transfer *pt,
|
||||
const void *src,
|
||||
uint x, uint y, uint w, uint h,
|
||||
uint *z);
|
||||
|
||||
void
|
||||
pipe_put_tile_z(struct pipe_transfer *pt,
|
||||
void *dst,
|
||||
uint x, uint y, uint w, uint h,
|
||||
const uint *z);
|
||||
|
||||
void
|
||||
pipe_tile_raw_to_rgba(enum pipe_format format,
|
||||
const void *src,
|
||||
|
||||
Reference in New Issue
Block a user