Marek/Roland -- do either of those comments count as a R-b? I'd like to push this out tonight, pending a full piglit run.
On Wed, Sep 24, 2014 at 1:35 PM, Roland Scheidegger <srol...@vmware.com> wrote: > Yes cubemaps should have array_size == 6 always in gallium. You just > have to be careful whenever translating things from mesa to gallium as > things like that won't be true in core mesa of course (similar to 1d > array textures having height and so on) due to OpenGL weirdness for > historical reasons. > > Roland > > > Am 24.09.2014 19:19, schrieb Marek Olšák: >> Interesting, I didn't know about that. Nevermind. st/mesa indeed sets it to >> 6. >> >> Marek >> >> On Wed, Sep 24, 2014 at 6:26 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >>> On Wed, Sep 24, 2014 at 12:20 PM, Marek Olšák <mar...@gmail.com> wrote: >>>> Cubemaps have array_size == 1, but you can still set the target to 2D >>> >>> Are you *sure* about that? Everything I'm seeing indicates that >>> cubemaps have array_size == 6. For example this code in nv50_tex.c: >>> >>> depth = MAX2(mt->base.base.array_size, mt->base.base.depth0); >>> ... >>> case PIPE_TEXTURE_CUBE: >>> depth /= 6; >>> ... >>> >>>> and set first_layer <= last_layer <= 6 in the sample view. Instead of >>>> checking array_size, maybe NumLayers should be used instead. Just >>>> guessing. >>>> >>>> Marek >>>> >>>> On Wed, Sep 24, 2014 at 5:05 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >>>>> The disguise of cubemap's layeredness is insufficient to trip up this >>>>> code :) They still get their NumLayers set, and the resources still >>>>> have an array size. Perhaps there's a scenario I'm not considering? >>>>> >>>>> On Wed, Sep 24, 2014 at 5:23 AM, Marek Olšák <mar...@gmail.com> wrote: >>>>>> Maybe something similar also needs to be done for cubemaps, because >>>>>> they are just layered textures in disguise? >>>>>> >>>>>> Marek >>>>>> >>>>>> On Wed, Sep 24, 2014 at 7:01 AM, Ilia Mirkin <imir...@alum.mit.edu> >>>>>> wrote: >>>>>>> For 3d textures, NumLayers is set to 1, which is not what we want. This >>>>>>> fixes the newly added gl-layer-render-storage test (which constructs >>>>>>> immutable 3d textures). Fixes regression introduced in d82bd7eb060. >>>>>>> >>>>>>> Bugzilla: >>>>>>> https://urldefense.proofpoint.com/v1/url?u=https://bugs.freedesktop.org/show_bug.cgi?id%3D84145&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F4msKE2WxRzA%2BwN%2B25muztFm5TSPwE8HKJfWfR2NgfY%3D%0A&m=p4L3w5mFWeprslDAPtBcySi4H8PhKEdqz0pOU77lcjg%3D%0A&s=5599aec76e1694c8ec71dcfe6209603bf8b152884c942363fd84e9d56edaaa72 >>>>>>> Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> >>>>>>> --- >>>>>>> src/mesa/state_tracker/st_atom_texture.c | 2 +- >>>>>>> src/mesa/state_tracker/st_cb_fbo.c | 3 ++- >>>>>>> src/mesa/state_tracker/st_texture.c | 3 ++- >>>>>>> 3 files changed, 5 insertions(+), 3 deletions(-) >>>>>>> >>>>>>> diff --git a/src/mesa/state_tracker/st_atom_texture.c >>>>>>> b/src/mesa/state_tracker/st_atom_texture.c >>>>>>> index ed9a444..19072ae 100644 >>>>>>> --- a/src/mesa/state_tracker/st_atom_texture.c >>>>>>> +++ b/src/mesa/state_tracker/st_atom_texture.c >>>>>>> @@ -223,7 +223,7 @@ static unsigned last_level(struct st_texture_object >>>>>>> *stObj) >>>>>>> >>>>>>> static unsigned last_layer(struct st_texture_object *stObj) >>>>>>> { >>>>>>> - if (stObj->base.Immutable) >>>>>>> + if (stObj->base.Immutable && stObj->pt->array_size > 1) >>>>>>> return MIN2(stObj->base.MinLayer + stObj->base.NumLayers - 1, >>>>>>> stObj->pt->array_size - 1); >>>>>>> return stObj->pt->array_size - 1; >>>>>>> diff --git a/src/mesa/state_tracker/st_cb_fbo.c >>>>>>> b/src/mesa/state_tracker/st_cb_fbo.c >>>>>>> index 470ab27..7b6a444 100644 >>>>>>> --- a/src/mesa/state_tracker/st_cb_fbo.c >>>>>>> +++ b/src/mesa/state_tracker/st_cb_fbo.c >>>>>>> @@ -451,7 +451,8 @@ st_update_renderbuffer_surface(struct st_context >>>>>>> *st, >>>>>>> } >>>>>>> >>>>>>> /* Adjust for texture views */ >>>>>>> - if (strb->is_rtt) { >>>>>>> + if (strb->is_rtt && resource->array_size > 1 && >>>>>>> + strb->Base.TexImage->TexObject->Immutable) { >>>>>>> struct gl_texture_object *tex = strb->Base.TexImage->TexObject; >>>>>>> first_layer += tex->MinLayer; >>>>>>> if (!strb->rtt_layered) >>>>>>> diff --git a/src/mesa/state_tracker/st_texture.c >>>>>>> b/src/mesa/state_tracker/st_texture.c >>>>>>> index c84aa45..2cd95ec 100644 >>>>>>> --- a/src/mesa/state_tracker/st_texture.c >>>>>>> +++ b/src/mesa/state_tracker/st_texture.c >>>>>>> @@ -263,7 +263,8 @@ st_texture_image_map(struct st_context *st, struct >>>>>>> st_texture_image *stImage, >>>>>>> if (stObj->base.Immutable) { >>>>>>> level += stObj->base.MinLevel; >>>>>>> z += stObj->base.MinLayer; >>>>>>> - d = MIN2(d, stObj->base.NumLayers); >>>>>>> + if (stObj->pt->array_size > 1) >>>>>>> + d = MIN2(d, stObj->base.NumLayers); >>>>>>> } >>>>>>> >>>>>>> z += stImage->base.Face; >>>>>>> -- >>>>>>> 1.8.5.5 >>>>>>> >>>>>>> _______________________________________________ >>>>>>> mesa-dev mailing list >>>>>>> mesa-dev@lists.freedesktop.org >>>>>>> https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/mesa-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F4msKE2WxRzA%2BwN%2B25muztFm5TSPwE8HKJfWfR2NgfY%3D%0A&m=p4L3w5mFWeprslDAPtBcySi4H8PhKEdqz0pOU77lcjg%3D%0A&s=da68def8d99a0b8cd601334ed2b794d24bcb8e278d84e5a8aa06cc21afc5967d >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/mesa-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=F4msKE2WxRzA%2BwN%2B25muztFm5TSPwE8HKJfWfR2NgfY%3D%0A&m=p4L3w5mFWeprslDAPtBcySi4H8PhKEdqz0pOU77lcjg%3D%0A&s=da68def8d99a0b8cd601334ed2b794d24bcb8e278d84e5a8aa06cc21afc5967d >> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev