mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 01:18:06 +02:00
ilo: add pipe_texture_target to ilo_image
Save the target in ilo_image instead of passing it around.
This commit is contained in:
parent
9da9cf729f
commit
f9d2bbe967
6 changed files with 18 additions and 23 deletions
|
|
@ -675,6 +675,7 @@ img_init_size_and_format(struct ilo_image *img,
|
|||
enum pipe_format format = templ->format;
|
||||
bool require_separate_stencil = false;
|
||||
|
||||
img->target = templ->target;
|
||||
img->width0 = templ->width0;
|
||||
img->height0 = templ->height0;
|
||||
img->depth0 = templ->depth0;
|
||||
|
|
@ -1343,6 +1344,7 @@ img_init_for_transfer(struct ilo_image *img,
|
|||
|
||||
img->aux.type = ILO_IMAGE_AUX_NONE;
|
||||
|
||||
img->target = templ->target;
|
||||
img->width0 = templ->width0;
|
||||
img->height0 = templ->height0;
|
||||
img->depth0 = templ->depth0;
|
||||
|
|
|
|||
|
|
@ -88,6 +88,8 @@ struct ilo_image_lod {
|
|||
* Texture layout.
|
||||
*/
|
||||
struct ilo_image {
|
||||
enum pipe_texture_target target;
|
||||
|
||||
/* size, format, etc for programming hardware states */
|
||||
unsigned width0;
|
||||
unsigned height0;
|
||||
|
|
|
|||
|
|
@ -386,7 +386,6 @@ ilo_gpe_init_view_surface_for_buffer(const struct ilo_dev *dev,
|
|||
void
|
||||
ilo_gpe_init_view_surface_for_image(const struct ilo_dev *dev,
|
||||
const struct ilo_image *img,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format,
|
||||
unsigned first_level,
|
||||
unsigned num_levels,
|
||||
|
|
@ -399,7 +398,6 @@ void
|
|||
ilo_gpe_init_zs_surface(const struct ilo_dev *dev,
|
||||
const struct ilo_image *img,
|
||||
const struct ilo_image *s8_img,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format, unsigned level,
|
||||
unsigned first_layer, unsigned num_layers,
|
||||
struct ilo_zs_surface *zs);
|
||||
|
|
|
|||
|
|
@ -936,7 +936,6 @@ static void
|
|||
zs_init_info(const struct ilo_dev *dev,
|
||||
const struct ilo_image *img,
|
||||
const struct ilo_image *s8_img,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format, unsigned level,
|
||||
unsigned first_layer, unsigned num_layers,
|
||||
struct ilo_zs_surface_info *info)
|
||||
|
|
@ -947,7 +946,7 @@ zs_init_info(const struct ilo_dev *dev,
|
|||
|
||||
memset(info, 0, sizeof(*info));
|
||||
|
||||
info->surface_type = ilo_gpe_gen6_translate_texture(target);
|
||||
info->surface_type = ilo_gpe_gen6_translate_texture(img->target);
|
||||
|
||||
if (info->surface_type == GEN6_SURFTYPE_CUBE) {
|
||||
/*
|
||||
|
|
@ -1086,7 +1085,7 @@ zs_init_info(const struct ilo_dev *dev,
|
|||
|
||||
info->width = img->width0;
|
||||
info->height = img->height0;
|
||||
info->depth = (target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
|
||||
info->depth = (img->target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
|
||||
|
||||
info->lod = level;
|
||||
info->first_layer = first_layer;
|
||||
|
|
@ -1097,7 +1096,6 @@ void
|
|||
ilo_gpe_init_zs_surface(const struct ilo_dev *dev,
|
||||
const struct ilo_image *img,
|
||||
const struct ilo_image *s8_img,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format, unsigned level,
|
||||
unsigned first_layer, unsigned num_layers,
|
||||
struct ilo_zs_surface *zs)
|
||||
|
|
@ -1111,7 +1109,7 @@ ilo_gpe_init_zs_surface(const struct ilo_dev *dev,
|
|||
ILO_DEV_ASSERT(dev, 6, 8);
|
||||
|
||||
if (img) {
|
||||
zs_init_info(dev, img, s8_img, target, format,
|
||||
zs_init_info(dev, img, s8_img, format,
|
||||
level, first_layer, num_layers, &info);
|
||||
|
||||
switch (img->sample_count) {
|
||||
|
|
|
|||
|
|
@ -554,7 +554,6 @@ view_init_for_buffer_gen6(const struct ilo_dev *dev,
|
|||
static void
|
||||
view_init_for_image_gen6(const struct ilo_dev *dev,
|
||||
const struct ilo_image *img,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format,
|
||||
unsigned first_level,
|
||||
unsigned num_levels,
|
||||
|
|
@ -569,7 +568,7 @@ view_init_for_image_gen6(const struct ilo_dev *dev,
|
|||
|
||||
ILO_DEV_ASSERT(dev, 6, 6);
|
||||
|
||||
surface_type = ilo_gpe_gen6_translate_texture(target);
|
||||
surface_type = ilo_gpe_gen6_translate_texture(img->target);
|
||||
assert(surface_type != GEN6_SURFTYPE_BUFFER);
|
||||
|
||||
if (format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT && img->separate_stencil)
|
||||
|
|
@ -583,7 +582,7 @@ view_init_for_image_gen6(const struct ilo_dev *dev,
|
|||
|
||||
width = img->width0;
|
||||
height = img->height0;
|
||||
depth = (target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
|
||||
depth = (img->target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
|
||||
pitch = img->bo_stride;
|
||||
|
||||
if (surface_type == GEN6_SURFTYPE_CUBE) {
|
||||
|
|
@ -910,7 +909,6 @@ view_init_for_buffer_gen7(const struct ilo_dev *dev,
|
|||
static void
|
||||
view_init_for_image_gen7(const struct ilo_dev *dev,
|
||||
const struct ilo_image *img,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format,
|
||||
unsigned first_level,
|
||||
unsigned num_levels,
|
||||
|
|
@ -925,7 +923,7 @@ view_init_for_image_gen7(const struct ilo_dev *dev,
|
|||
|
||||
ILO_DEV_ASSERT(dev, 7, 8);
|
||||
|
||||
surface_type = ilo_gpe_gen6_translate_texture(target);
|
||||
surface_type = ilo_gpe_gen6_translate_texture(img->target);
|
||||
assert(surface_type != GEN6_SURFTYPE_BUFFER);
|
||||
|
||||
if (format == PIPE_FORMAT_Z32_FLOAT_S8X24_UINT && img->separate_stencil)
|
||||
|
|
@ -939,7 +937,7 @@ view_init_for_image_gen7(const struct ilo_dev *dev,
|
|||
|
||||
width = img->width0;
|
||||
height = img->height0;
|
||||
depth = (target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
|
||||
depth = (img->target == PIPE_TEXTURE_3D) ? img->depth0 : num_layers;
|
||||
pitch = img->bo_stride;
|
||||
|
||||
if (surface_type == GEN6_SURFTYPE_CUBE) {
|
||||
|
|
@ -1045,7 +1043,7 @@ view_init_for_image_gen7(const struct ilo_dev *dev,
|
|||
* returns zero for the number of layers when this field is not set.
|
||||
*/
|
||||
if (surface_type != GEN6_SURFTYPE_3D) {
|
||||
switch (target) {
|
||||
switch (img->target) {
|
||||
case PIPE_TEXTURE_1D_ARRAY:
|
||||
case PIPE_TEXTURE_2D_ARRAY:
|
||||
case PIPE_TEXTURE_CUBE_ARRAY:
|
||||
|
|
@ -1220,7 +1218,6 @@ ilo_gpe_init_view_surface_for_buffer(const struct ilo_dev *dev,
|
|||
void
|
||||
ilo_gpe_init_view_surface_for_image(const struct ilo_dev *dev,
|
||||
const struct ilo_image *img,
|
||||
enum pipe_texture_target target,
|
||||
enum pipe_format format,
|
||||
unsigned first_level,
|
||||
unsigned num_levels,
|
||||
|
|
@ -1230,11 +1227,11 @@ ilo_gpe_init_view_surface_for_image(const struct ilo_dev *dev,
|
|||
struct ilo_view_surface *surf)
|
||||
{
|
||||
if (ilo_dev_gen(dev) >= ILO_GEN(7)) {
|
||||
view_init_for_image_gen7(dev, img, target, format,
|
||||
view_init_for_image_gen7(dev, img, format,
|
||||
first_level, num_levels, first_layer, num_layers,
|
||||
is_rt, surf);
|
||||
} else {
|
||||
view_init_for_image_gen6(dev, img, target, format,
|
||||
view_init_for_image_gen6(dev, img, format,
|
||||
first_level, num_levels, first_layer, num_layers,
|
||||
is_rt, surf);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1019,8 +1019,7 @@ ilo_create_sampler_view(struct pipe_context *pipe,
|
|||
"not created for sampling\n");
|
||||
}
|
||||
|
||||
ilo_gpe_init_view_surface_for_image(dev, &tex->image,
|
||||
tex->base.target, templ->format,
|
||||
ilo_gpe_init_view_surface_for_image(dev, &tex->image, templ->format,
|
||||
templ->u.tex.first_level,
|
||||
templ->u.tex.last_level - templ->u.tex.first_level + 1,
|
||||
templ->u.tex.first_layer,
|
||||
|
|
@ -1066,8 +1065,7 @@ ilo_create_surface(struct pipe_context *pipe,
|
|||
/* relax this? */
|
||||
assert(tex->base.target != PIPE_BUFFER);
|
||||
|
||||
ilo_gpe_init_view_surface_for_image(dev,
|
||||
&tex->image, tex->base.target,
|
||||
ilo_gpe_init_view_surface_for_image(dev, &tex->image,
|
||||
templ->format, templ->u.tex.level, 1,
|
||||
templ->u.tex.first_layer,
|
||||
templ->u.tex.last_layer - templ->u.tex.first_layer + 1,
|
||||
|
|
@ -1077,7 +1075,7 @@ ilo_create_surface(struct pipe_context *pipe,
|
|||
|
||||
ilo_gpe_init_zs_surface(dev, &tex->image,
|
||||
(tex->separate_s8) ? &tex->separate_s8->image : NULL,
|
||||
tex->base.target, templ->format,
|
||||
templ->format,
|
||||
templ->u.tex.level, templ->u.tex.first_layer,
|
||||
templ->u.tex.last_layer - templ->u.tex.first_layer + 1,
|
||||
&surf->u.zs);
|
||||
|
|
@ -1292,7 +1290,7 @@ ilo_state_vector_init(const struct ilo_dev *dev,
|
|||
{
|
||||
ilo_gpe_set_scissor_null(dev, &vec->scissor);
|
||||
|
||||
ilo_gpe_init_zs_surface(dev, NULL, NULL, PIPE_TEXTURE_2D,
|
||||
ilo_gpe_init_zs_surface(dev, NULL, NULL,
|
||||
PIPE_FORMAT_NONE, 0, 0, 1, &vec->fb.null_zs);
|
||||
|
||||
util_dynarray_init(&vec->global_binding.bindings);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue