mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 07:50:11 +01:00
st/mesa: set pipe_image_view layers correctly for 3D textures
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
parent
f1b0bda6bc
commit
ef27190a34
1 changed files with 17 additions and 7 deletions
|
|
@ -84,13 +84,23 @@ st_bind_images(struct st_context *st, struct gl_shader *shader,
|
|||
img->u.buf.last_element = f + (n - 1);
|
||||
} else {
|
||||
img->u.tex.level = u->Level + stObj->base.MinLevel;
|
||||
img->u.tex.first_layer = u->_Layer + stObj->base.MinLayer;
|
||||
img->u.tex.last_layer = u->_Layer + stObj->base.MinLayer;
|
||||
if (u->Layered && img->resource->array_size > 1) {
|
||||
if (stObj->base.Immutable)
|
||||
img->u.tex.last_layer += stObj->base.NumLayers - 1;
|
||||
else
|
||||
img->u.tex.last_layer += img->resource->array_size - 1;
|
||||
if (stObj->pt->target == PIPE_TEXTURE_3D) {
|
||||
if (u->Layered) {
|
||||
img->u.tex.first_layer = 0;
|
||||
img->u.tex.last_layer = u_minify(stObj->pt->depth0, img->u.tex.level) - 1;
|
||||
} else {
|
||||
img->u.tex.first_layer = u->_Layer;
|
||||
img->u.tex.last_layer = u->_Layer;
|
||||
}
|
||||
} else {
|
||||
img->u.tex.first_layer = u->_Layer + stObj->base.MinLayer;
|
||||
img->u.tex.last_layer = u->_Layer + stObj->base.MinLayer;
|
||||
if (u->Layered && img->resource->array_size > 1) {
|
||||
if (stObj->base.Immutable)
|
||||
img->u.tex.last_layer += stObj->base.NumLayers - 1;
|
||||
else
|
||||
img->u.tex.last_layer += img->resource->array_size - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue