mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-09 03:38:18 +02:00
gallium/softpipe: replace pipe_get_tile_swizzle()
The new function, pipe_get_tile_rgba_format(), no longer takes a swizzle (we weren't actually using it anywhere). Rename it to indicate that the format is passed explicitly.
This commit is contained in:
parent
4e2c077879
commit
90671fcdda
3 changed files with 20 additions and 70 deletions
|
|
@ -391,23 +391,14 @@ pipe_get_tile_rgba(struct pipe_context *pipe,
|
|||
|
||||
|
||||
void
|
||||
pipe_get_tile_swizzle(struct pipe_context *pipe,
|
||||
struct pipe_transfer *pt,
|
||||
uint x,
|
||||
uint y,
|
||||
uint w,
|
||||
uint h,
|
||||
uint swizzle_r,
|
||||
uint swizzle_g,
|
||||
uint swizzle_b,
|
||||
uint swizzle_a,
|
||||
enum pipe_format format,
|
||||
float *p)
|
||||
pipe_get_tile_rgba_format(struct pipe_context *pipe,
|
||||
struct pipe_transfer *pt,
|
||||
uint x, uint y, uint w, uint h,
|
||||
enum pipe_format format,
|
||||
float *p)
|
||||
{
|
||||
unsigned dst_stride = w * 4;
|
||||
void *packed;
|
||||
uint iy;
|
||||
float rgba01[6];
|
||||
|
||||
if (u_clip_tile(x, y, &w, &h, &pt->box)) {
|
||||
return;
|
||||
|
|
@ -427,35 +418,6 @@ pipe_get_tile_swizzle(struct pipe_context *pipe,
|
|||
pipe_tile_raw_to_rgba(format, packed, w, h, p, dst_stride);
|
||||
|
||||
FREE(packed);
|
||||
|
||||
if (swizzle_r == PIPE_SWIZZLE_RED &&
|
||||
swizzle_g == PIPE_SWIZZLE_GREEN &&
|
||||
swizzle_b == PIPE_SWIZZLE_BLUE &&
|
||||
swizzle_a == PIPE_SWIZZLE_ALPHA) {
|
||||
/* no-op, skip */
|
||||
return;
|
||||
}
|
||||
|
||||
rgba01[PIPE_SWIZZLE_ZERO] = 0.0f;
|
||||
rgba01[PIPE_SWIZZLE_ONE] = 1.0f;
|
||||
|
||||
for (iy = 0; iy < h; iy++) {
|
||||
float *row = p;
|
||||
uint ix;
|
||||
|
||||
for (ix = 0; ix < w; ix++) {
|
||||
rgba01[PIPE_SWIZZLE_RED] = row[0];
|
||||
rgba01[PIPE_SWIZZLE_GREEN] = row[1];
|
||||
rgba01[PIPE_SWIZZLE_BLUE] = row[2];
|
||||
rgba01[PIPE_SWIZZLE_ALPHA] = row[3];
|
||||
|
||||
*row++ = rgba01[swizzle_r];
|
||||
*row++ = rgba01[swizzle_g];
|
||||
*row++ = rgba01[swizzle_b];
|
||||
*row++ = rgba01[swizzle_a];
|
||||
}
|
||||
p += dst_stride;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -80,18 +80,11 @@ pipe_get_tile_rgba(struct pipe_context *pipe,
|
|||
float *p);
|
||||
|
||||
void
|
||||
pipe_get_tile_swizzle(struct pipe_context *pipe,
|
||||
struct pipe_transfer *pt,
|
||||
uint x,
|
||||
uint y,
|
||||
uint w,
|
||||
uint h,
|
||||
uint swizzle_r,
|
||||
uint swizzle_g,
|
||||
uint swizzle_b,
|
||||
uint swizzle_a,
|
||||
enum pipe_format format,
|
||||
float *p);
|
||||
pipe_get_tile_rgba_format(struct pipe_context *pipe,
|
||||
struct pipe_transfer *pt,
|
||||
uint x, uint y, uint w, uint h,
|
||||
enum pipe_format format,
|
||||
float *p);
|
||||
|
||||
void
|
||||
pipe_put_tile_rgba(struct pipe_context *pipe,
|
||||
|
|
|
|||
|
|
@ -278,22 +278,17 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
|
|||
tc->tex_z = addr.bits.z;
|
||||
}
|
||||
|
||||
/* get tile from the transfer (view into texture)
|
||||
* Note we're using the swizzle version of this fuction only because
|
||||
* we need to pass the texture cache's format explicitly.
|
||||
/* Get tile from the transfer (view into texture), explicitly passing
|
||||
* the image format.
|
||||
*/
|
||||
pipe_get_tile_swizzle(tc->pipe,
|
||||
tc->tex_trans,
|
||||
addr.bits.x * TILE_SIZE,
|
||||
addr.bits.y * TILE_SIZE,
|
||||
TILE_SIZE,
|
||||
TILE_SIZE,
|
||||
PIPE_SWIZZLE_RED,
|
||||
PIPE_SWIZZLE_GREEN,
|
||||
PIPE_SWIZZLE_BLUE,
|
||||
PIPE_SWIZZLE_ALPHA,
|
||||
tc->format,
|
||||
(float *) tile->data.color);
|
||||
pipe_get_tile_rgba_format(tc->pipe,
|
||||
tc->tex_trans,
|
||||
addr.bits.x * TILE_SIZE,
|
||||
addr.bits.y * TILE_SIZE,
|
||||
TILE_SIZE,
|
||||
TILE_SIZE,
|
||||
tc->format,
|
||||
(float *) tile->data.color);
|
||||
|
||||
tile->addr = addr;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue