Ilia Mirkin
2014-Mar-05 10:37 UTC
[Nouveau] [PATCH] nv50, nvc0: choose storage type after ms has been initialized
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> --- Noticed by inspection, untested. Would be interesting to see if this fixes anything. src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 4 ++-- src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c index 513d8f9..6c6ef4e 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c @@ -329,13 +329,13 @@ nv50_miptree_create(struct pipe_screen *pscreen, if (pt->bind & PIPE_BIND_LINEAR) pt->flags |= NOUVEAU_RESOURCE_FLAG_LINEAR; - bo_config.nv50.memtype = nv50_mt_choose_storage_type(mt, TRUE); - if (!nv50_miptree_init_ms_mode(mt)) { FREE(mt); return NULL; } + bo_config.nv50.memtype = nv50_mt_choose_storage_type(mt, TRUE); + if (unlikely(pt->flags & NV50_RESOURCE_FLAG_VIDEO)) { nv50_miptree_init_layout_video(mt); if (pt->flags & NV50_RESOURCE_FLAG_NOALLOC) { diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c b/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c index 79c9390..59b9028 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c @@ -277,13 +277,13 @@ nvc0_miptree_create(struct pipe_screen *pscreen, if (pt->bind & PIPE_BIND_LINEAR) pt->flags |= NOUVEAU_RESOURCE_FLAG_LINEAR; - bo_config.nvc0.memtype = nvc0_mt_choose_storage_type(mt, compressed); - if (!nvc0_miptree_init_ms_mode(mt)) { FREE(mt); return NULL; } + bo_config.nvc0.memtype = nvc0_mt_choose_storage_type(mt, compressed); + if (unlikely(pt->flags & NVC0_RESOURCE_FLAG_VIDEO)) { nvc0_miptree_init_layout_video(mt); } else -- 1.8.3.2
Ilia Mirkin
2014-Mar-05 18:26 UTC
[Nouveau] [PATCH] nv50, nvc0: choose storage type after ms has been initialized
On Wed, Mar 5, 2014 at 5:37 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> > --- > > Noticed by inspection, untested. Would be interesting to see if this fixes > anything.I noticed that the nvc0 bit is bogus -- mt->ms_x/y aren't used to determine ms there (it does log2(samples) directly). Emil tested this out on nv96, and it looks like it started throwing a RT_STORAGE_TYPE_MISMATCH trap for a few tests. I'll investigate... but as is, we're always using the *_MS1 storage type on nv50+. Withdrawn for now.> > src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 4 ++-- > src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c > index 513d8f9..6c6ef4e 100644 > --- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c > +++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c > @@ -329,13 +329,13 @@ nv50_miptree_create(struct pipe_screen *pscreen, > if (pt->bind & PIPE_BIND_LINEAR) > pt->flags |= NOUVEAU_RESOURCE_FLAG_LINEAR; > > - bo_config.nv50.memtype = nv50_mt_choose_storage_type(mt, TRUE); > - > if (!nv50_miptree_init_ms_mode(mt)) { > FREE(mt); > return NULL; > } > > + bo_config.nv50.memtype = nv50_mt_choose_storage_type(mt, TRUE); > + > if (unlikely(pt->flags & NV50_RESOURCE_FLAG_VIDEO)) { > nv50_miptree_init_layout_video(mt); > if (pt->flags & NV50_RESOURCE_FLAG_NOALLOC) { > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c b/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c > index 79c9390..59b9028 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c > @@ -277,13 +277,13 @@ nvc0_miptree_create(struct pipe_screen *pscreen, > if (pt->bind & PIPE_BIND_LINEAR) > pt->flags |= NOUVEAU_RESOURCE_FLAG_LINEAR; > > - bo_config.nvc0.memtype = nvc0_mt_choose_storage_type(mt, compressed); > - > if (!nvc0_miptree_init_ms_mode(mt)) { > FREE(mt); > return NULL; > } > > + bo_config.nvc0.memtype = nvc0_mt_choose_storage_type(mt, compressed); > + > if (unlikely(pt->flags & NVC0_RESOURCE_FLAG_VIDEO)) { > nvc0_miptree_init_layout_video(mt); > } else > -- > 1.8.3.2 >