mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 17:10:11 +01:00
gallium: make all checks for PIPE_TEXTURE_2D check for PIPE_TEXTURE_RECT too
Searched for them with: git grep -E '[!=]=.*PIPE_TEXTURE_2D|PIPE_TEXTURE_2D.*[!=]=|case.*PIPE_TEXTURE_2D' Behavior hasn't been changed.
This commit is contained in:
parent
72b3e3fee3
commit
ae0ef6f69f
25 changed files with 50 additions and 18 deletions
|
|
@ -176,6 +176,7 @@ texture_dims(enum pipe_texture_target tex)
|
|||
case PIPE_TEXTURE_1D:
|
||||
return 1;
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
case PIPE_TEXTURE_CUBE:
|
||||
return 2;
|
||||
case PIPE_TEXTURE_3D:
|
||||
|
|
@ -1749,7 +1750,8 @@ lp_build_sample_2d_linear_aos(struct lp_build_sample_context *bld,
|
|||
LLVMValueRef unswizzled[4];
|
||||
LLVMValueRef stride;
|
||||
|
||||
assert(bld->static_state->target == PIPE_TEXTURE_2D);
|
||||
assert(bld->static_state->target == PIPE_TEXTURE_2D
|
||||
|| bld->static_state->target == PIPE_TEXTURE_RECT);
|
||||
assert(bld->static_state->min_img_filter == PIPE_TEX_FILTER_LINEAR);
|
||||
assert(bld->static_state->mag_img_filter == PIPE_TEX_FILTER_LINEAR);
|
||||
assert(bld->static_state->min_mip_filter == PIPE_TEX_MIPFILTER_NONE);
|
||||
|
|
@ -2077,7 +2079,8 @@ lp_build_sample_soa(LLVMBuilderRef builder,
|
|||
}
|
||||
else if (util_format_fits_8unorm(bld.format_desc) &&
|
||||
bld.format_desc->nr_channels > 1 &&
|
||||
static_state->target == PIPE_TEXTURE_2D &&
|
||||
(static_state->target == PIPE_TEXTURE_2D ||
|
||||
static_state->target == PIPE_TEXTURE_RECT) &&
|
||||
static_state->min_img_filter == PIPE_TEX_FILTER_LINEAR &&
|
||||
static_state->mag_img_filter == PIPE_TEX_FILTER_LINEAR &&
|
||||
static_state->min_mip_filter == PIPE_TEX_MIPFILTER_NONE &&
|
||||
|
|
|
|||
|
|
@ -347,7 +347,8 @@ util_blit_pixels_writemask(struct blit_state *ctx,
|
|||
dst->face == srcsub.face &&
|
||||
dst->level == srcsub.level &&
|
||||
dst->zslice == srcZ0) ||
|
||||
src_tex->target != PIPE_TEXTURE_2D)
|
||||
(src_tex->target != PIPE_TEXTURE_2D &&
|
||||
src_tex->target != PIPE_TEXTURE_RECT))
|
||||
{
|
||||
struct pipe_resource texTemp;
|
||||
struct pipe_resource *tex;
|
||||
|
|
|
|||
|
|
@ -569,6 +569,8 @@ pipe_tex_to_tgsi_tex(enum pipe_texture_target pipe_tex_target)
|
|||
return TGSI_TEXTURE_1D;
|
||||
case PIPE_TEXTURE_2D:
|
||||
return TGSI_TEXTURE_2D;
|
||||
case PIPE_TEXTURE_RECT:
|
||||
return TGSI_TEXTURE_2D;
|
||||
case PIPE_TEXTURE_3D:
|
||||
return TGSI_TEXTURE_3D;
|
||||
case PIPE_TEXTURE_CUBE:
|
||||
|
|
@ -807,6 +809,7 @@ void util_blitter_copy_region(struct blitter_context *blitter,
|
|||
/* Draw the quad with the draw_rectangle callback. */
|
||||
case PIPE_TEXTURE_1D:
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
{
|
||||
/* Set texture coordinates. */
|
||||
float coord[4];
|
||||
|
|
|
|||
|
|
@ -1255,6 +1255,7 @@ fallback_gen_mipmap(struct gen_mipmap_state *ctx,
|
|||
make_1d_mipmap(ctx, pt, face, baseLevel, lastLevel);
|
||||
break;
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
case PIPE_TEXTURE_CUBE:
|
||||
make_2d_mipmap(ctx, pt, face, baseLevel, lastLevel);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ struct pipe_surface *util_surfaces_do_get(struct util_surfaces *us, unsigned sur
|
|||
static INLINE struct pipe_surface *
|
||||
util_surfaces_get(struct util_surfaces *us, unsigned surface_struct_size, struct pipe_screen *pscreen, struct pipe_resource *pt, unsigned face, unsigned level, unsigned zslice, unsigned flags)
|
||||
{
|
||||
if(likely(pt->target == PIPE_TEXTURE_2D && us->u.array))
|
||||
if(likely((pt->target == PIPE_TEXTURE_2D || pt->target == PIPE_TEXTURE_RECT) && us->u.array))
|
||||
{
|
||||
struct pipe_surface *ps = us->u.array[level];
|
||||
if(ps)
|
||||
|
|
@ -52,7 +52,7 @@ void util_surfaces_do_detach(struct util_surfaces *us, struct pipe_surface *ps);
|
|||
static INLINE void
|
||||
util_surfaces_detach(struct util_surfaces *us, struct pipe_surface *ps)
|
||||
{
|
||||
if(likely(ps->texture->target == PIPE_TEXTURE_2D))
|
||||
if(likely(ps->texture->target == PIPE_TEXTURE_2D || ps->texture->target == PIPE_TEXTURE_RECT))
|
||||
{
|
||||
us->u.array[ps->level] = 0;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -360,6 +360,7 @@ i915_texture_layout(struct i915_texture * tex)
|
|||
switch (pt->target) {
|
||||
case PIPE_TEXTURE_1D:
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
if (!i9x5_special_layout(tex))
|
||||
i915_texture_layout_2d(tex);
|
||||
break;
|
||||
|
|
@ -605,6 +606,7 @@ i945_texture_layout(struct i915_texture * tex)
|
|||
switch (pt->target) {
|
||||
case PIPE_TEXTURE_1D:
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
if (!i9x5_special_layout(tex))
|
||||
i945_texture_layout_2d(tex);
|
||||
break;
|
||||
|
|
@ -829,7 +831,8 @@ i915_texture_from_handle(struct pipe_screen * screen,
|
|||
buffer = iws->buffer_from_handle(iws, whandle, &stride);
|
||||
|
||||
/* Only supports one type */
|
||||
if (template->target != PIPE_TEXTURE_2D ||
|
||||
if ((template->target != PIPE_TEXTURE_2D &&
|
||||
template->target != PIPE_TEXTURE_RECT) ||
|
||||
template->last_level != 0 ||
|
||||
template->depth0 != 1) {
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ static GLuint translate_tex_target( unsigned target )
|
|||
return BRW_SURFACE_1D;
|
||||
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
return BRW_SURFACE_2D;
|
||||
|
||||
case PIPE_TEXTURE_3D:
|
||||
|
|
@ -498,7 +499,8 @@ brw_texture_from_handle(struct pipe_screen *screen,
|
|||
unsigned pitch;
|
||||
GLuint format;
|
||||
|
||||
if (template->target != PIPE_TEXTURE_2D ||
|
||||
if ((template->target != PIPE_TEXTURE_2D
|
||||
&& template->target != PIPE_TEXTURE_RECT) ||
|
||||
template->last_level != 0 ||
|
||||
template->depth0 != 1)
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -230,6 +230,7 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen,
|
|||
assert(target == PIPE_BUFFER ||
|
||||
target == PIPE_TEXTURE_1D ||
|
||||
target == PIPE_TEXTURE_2D ||
|
||||
target == PIPE_TEXTURE_RECT ||
|
||||
target == PIPE_TEXTURE_3D ||
|
||||
target == PIPE_TEXTURE_CUBE);
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ resource_is_texture(const struct pipe_resource *resource)
|
|||
return FALSE;
|
||||
case PIPE_TEXTURE_1D:
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
case PIPE_TEXTURE_3D:
|
||||
case PIPE_TEXTURE_CUBE:
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -235,7 +235,8 @@ nv50_miptree_from_handle(struct pipe_screen *pscreen,
|
|||
unsigned stride;
|
||||
|
||||
/* Only supports 2D, non-mipmapped textures for the moment */
|
||||
if (template->target != PIPE_TEXTURE_2D ||
|
||||
if ((template->target != PIPE_TEXTURE_2D &&
|
||||
template->target != PIPE_TEXTURE_RECT) ||
|
||||
template->last_level != 0 ||
|
||||
template->depth0 != 1)
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ nv50_tex_construct(struct nv50_sampler_view *view)
|
|||
tic[2] |= NV50TIC_0_2_TARGET_1D;
|
||||
break;
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
tic[2] |= NV50TIC_0_2_TARGET_2D;
|
||||
break;
|
||||
case PIPE_TEXTURE_3D:
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ nv30_fragtex_set(struct nvfx_context *nvfx, int unit)
|
|||
txf |= NV34TCL_TX_FORMAT_CUBIC;
|
||||
/* fall-through */
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
txf |= NV34TCL_TX_FORMAT_DIMS_2D;
|
||||
break;
|
||||
case PIPE_TEXTURE_3D:
|
||||
|
|
|
|||
|
|
@ -135,6 +135,7 @@ nv40_fragtex_set(struct nvfx_context *nvfx, int unit)
|
|||
txf |= NV34TCL_TX_FORMAT_CUBIC;
|
||||
/* fall-through */
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
txf |= NV34TCL_TX_FORMAT_DIMS_2D;
|
||||
break;
|
||||
case PIPE_TEXTURE_3D:
|
||||
|
|
|
|||
|
|
@ -205,7 +205,8 @@ nvfx_miptree_from_handle(struct pipe_screen *pscreen,
|
|||
unsigned stride;
|
||||
|
||||
/* Only supports 2D, non-mipmapped textures for the moment */
|
||||
if (template->target != PIPE_TEXTURE_2D ||
|
||||
if ((template->target != PIPE_TEXTURE_2D &&
|
||||
template->target != PIPE_TEXTURE_RECT) ||
|
||||
template->last_level != 0 ||
|
||||
template->depth0 != 1)
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -354,7 +354,8 @@ void r300_zmask_alloc_block(struct r300_context *r300, struct r300_surface *surf
|
|||
/* We currently don't handle decompression for 3D textures and cubemaps
|
||||
* correctly. */
|
||||
if (tex->desc.b.b.target != PIPE_TEXTURE_1D &&
|
||||
tex->desc.b.b.target != PIPE_TEXTURE_2D)
|
||||
tex->desc.b.b.target != PIPE_TEXTURE_2D &&
|
||||
tex->desc.b.b.target != PIPE_TEXTURE_RECT)
|
||||
return;
|
||||
|
||||
/* Cannot flush zmask of 16-bit zbuffers. */
|
||||
|
|
|
|||
|
|
@ -754,7 +754,8 @@ struct pipe_resource *r300_texture_create(struct pipe_screen *screen,
|
|||
/* Refuse to create a texture with size 0. */
|
||||
if (!base->width0 ||
|
||||
(!base->height0 && (base->target == PIPE_TEXTURE_2D ||
|
||||
base->target == PIPE_TEXTURE_CUBE)) ||
|
||||
base->target == PIPE_TEXTURE_CUBE ||
|
||||
base->target == PIPE_TEXTURE_RECT)) ||
|
||||
(!base->depth0 && base->target == PIPE_TEXTURE_3D)) {
|
||||
fprintf(stderr, "r300: texture_create: "
|
||||
"Got invalid texture dimensions: %ix%ix%i\n",
|
||||
|
|
@ -787,7 +788,8 @@ struct pipe_resource *r300_texture_from_handle(struct pipe_screen *screen,
|
|||
unsigned stride, size;
|
||||
|
||||
/* Support only 2D textures without mipmaps */
|
||||
if (base->target != PIPE_TEXTURE_2D ||
|
||||
if ((base->target != PIPE_TEXTURE_2D &&
|
||||
base->target != PIPE_TEXTURE_RECT) ||
|
||||
base->depth0 != 1 ||
|
||||
base->last_level != 0) {
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -184,7 +184,8 @@ static unsigned r300_texture_get_nblocksy(struct r300_texture_desc *desc,
|
|||
|
||||
/* This is needed for the kernel checker, unfortunately. */
|
||||
if ((desc->b.b.target != PIPE_TEXTURE_1D &&
|
||||
desc->b.b.target != PIPE_TEXTURE_2D) ||
|
||||
desc->b.b.target != PIPE_TEXTURE_2D &&
|
||||
desc->b.b.target != PIPE_TEXTURE_RECT) ||
|
||||
desc->b.b.last_level != 0) {
|
||||
height = util_next_power_of_two(height);
|
||||
}
|
||||
|
|
@ -202,7 +203,8 @@ static unsigned r300_texture_get_nblocksy(struct r300_texture_desc *desc,
|
|||
* Do so for 3 or more macrotiles in the Y direction. */
|
||||
if (level == 0 && desc->b.b.last_level == 0 &&
|
||||
(desc->b.b.target == PIPE_TEXTURE_1D ||
|
||||
desc->b.b.target == PIPE_TEXTURE_2D) &&
|
||||
desc->b.b.target == PIPE_TEXTURE_2D ||
|
||||
desc->b.b.target == PIPE_TEXTURE_RECT) &&
|
||||
height >= tile_height * 3) {
|
||||
height = align(height, tile_height * 2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1199,6 +1199,7 @@ static inline unsigned r600_tex_dim(unsigned dim)
|
|||
case PIPE_TEXTURE_1D:
|
||||
return V_038000_SQ_TEX_DIM_1D;
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
return V_038000_SQ_TEX_DIM_2D;
|
||||
case PIPE_TEXTURE_3D:
|
||||
return V_038000_SQ_TEX_DIM_3D;
|
||||
|
|
|
|||
|
|
@ -170,7 +170,8 @@ struct pipe_resource *r600_texture_from_handle(struct pipe_screen *screen,
|
|||
}
|
||||
|
||||
/* Support only 2D textures without mipmaps */
|
||||
if (templ->target != PIPE_TEXTURE_2D || templ->depth0 != 1 || templ->last_level != 0)
|
||||
if ((templ->target != PIPE_TEXTURE_2D && templ->target != PIPE_TEXTURE_RECT) ||
|
||||
templ->depth0 != 1 || templ->last_level != 0)
|
||||
return NULL;
|
||||
|
||||
rtex = CALLOC_STRUCT(r600_resource_texture);
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ softpipe_is_format_supported( struct pipe_screen *screen,
|
|||
assert(target == PIPE_BUFFER ||
|
||||
target == PIPE_TEXTURE_1D ||
|
||||
target == PIPE_TEXTURE_2D ||
|
||||
target == PIPE_TEXTURE_RECT ||
|
||||
target == PIPE_TEXTURE_3D ||
|
||||
target == PIPE_TEXTURE_CUBE);
|
||||
|
||||
|
|
|
|||
|
|
@ -1785,6 +1785,7 @@ get_lambda_func(const union sp_sampler_key key)
|
|||
case PIPE_TEXTURE_1D:
|
||||
return compute_lambda_1d;
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
case PIPE_TEXTURE_CUBE:
|
||||
return compute_lambda_2d;
|
||||
case PIPE_TEXTURE_3D:
|
||||
|
|
@ -1809,6 +1810,7 @@ get_img_filter(const union sp_sampler_key key,
|
|||
return img_filter_1d_linear;
|
||||
break;
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
/* Try for fast path:
|
||||
*/
|
||||
if (key.bits.is_pot &&
|
||||
|
|
|
|||
|
|
@ -583,7 +583,8 @@ svga_texture_from_handle(struct pipe_screen *screen,
|
|||
assert(screen);
|
||||
|
||||
/* Only supports one type */
|
||||
if (template->target != PIPE_TEXTURE_2D ||
|
||||
if ((template->target != PIPE_TEXTURE_2D &&
|
||||
template->target != PIPE_TEXTURE_RECT) ||
|
||||
template->last_level != 0 ||
|
||||
template->depth0 != 1) {
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -353,6 +353,7 @@ static INLINE ubyte svga_tgsi_sampler_type( struct svga_shader_emitter *emit,
|
|||
case PIPE_TEXTURE_1D:
|
||||
return SVGA3DSAMP_2D;
|
||||
case PIPE_TEXTURE_2D:
|
||||
case PIPE_TEXTURE_RECT:
|
||||
return SVGA3DSAMP_2D;
|
||||
case PIPE_TEXTURE_3D:
|
||||
return SVGA3DSAMP_VOLUME;
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ def tex_coords(texture, face, level, zslice):
|
|||
[0.0, 1.0],
|
||||
]
|
||||
|
||||
if texture.target == PIPE_TEXTURE_2D:
|
||||
if texture.target == PIPE_TEXTURE_2D or texture.target == PIPE_TEXTURE_RECT:
|
||||
return [[s, t, 0.0] for s, t in st]
|
||||
elif texture.target == PIPE_TEXTURE_3D:
|
||||
depth = texture.get_depth(level)
|
||||
|
|
|
|||
|
|
@ -761,7 +761,7 @@ st_Bitmap(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
|
|||
if (pt) {
|
||||
struct pipe_sampler_view *sv = st_create_texture_sampler_view(st->pipe, pt);
|
||||
|
||||
assert(pt->target == PIPE_TEXTURE_2D);
|
||||
assert(pt->target == PIPE_TEXTURE_2D || pt->target == PIPE_TEXTURE_RECT);
|
||||
|
||||
if (sv) {
|
||||
draw_bitmap_quad(ctx, x, y, ctx->Current.RasterPos[2],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue