All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nv50: enable texture compression
@ 2015-01-02  2:56 Tobias Klausmann
       [not found] ` <1420167363-3297-1-git-send-email-tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Tobias Klausmann @ 2015-01-02  2:56 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

We enable compression only for some supported formats

Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
---
 src/gallium/drivers/nouveau/nv50/nv50_miptree.c |  4 ++--
 src/gallium/drivers/nouveau/nv50/nv50_screen.c  | 11 +++++++++--
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
index 1aacaec..a40e6d3 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
@@ -65,8 +65,7 @@ nv50_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
 static uint32_t
 nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
 {
-   const unsigned ms = mt->ms_x + mt->ms_y;
-
+   const unsigned ms = util_logbase2(mt->base.base.nr_samples);
    uint32_t tile_flags;
 
    if (unlikely(mt->base.base.flags & NOUVEAU_RESOURCE_FLAG_LINEAR))
@@ -96,6 +95,7 @@ nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
       tile_flags = 0x60 + ms;
       break;
    default:
+      compressed = false;
       switch (util_format_get_blocksizebits(mt->base.base.format)) {
       case 128:
          assert(ms < 3);
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index 2d8347b..8d759a7 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
@@ -391,7 +391,7 @@ nv50_screen_fence_update(struct pipe_screen *pscreen)
 }
 
 static void
-nv50_screen_init_hwctx(struct nv50_screen *screen)
+nv50_screen_init_hwctx(struct nouveau_device *dev, struct nv50_screen *screen)
 {
    struct nouveau_pushbuf *push = screen->base.pushbuf;
    struct nv04_fifo *fifo;
@@ -449,6 +449,13 @@ nv50_screen_init_hwctx(struct nv50_screen *screen)
       PUSH_DATA (push, 0x18);
    }
 
+   BEGIN_NV04(push, NV50_3D(ZETA_COMP_ENABLE), 1);
+   PUSH_DATA(push, dev->drm_version >= 0x01000101);
+
+   BEGIN_NV04(push, NV50_3D(RT_COMP_ENABLE(0)), 8);
+   for (i = 0; i < 8; ++i)
+      PUSH_DATA(push, dev->drm_version >= 0x01000101);
+
    BEGIN_NV04(push, NV50_3D(RT_CONTROL), 1);
    PUSH_DATA (push, 1);
 
@@ -871,7 +878,7 @@ nv50_screen_create(struct nouveau_device *dev)
    if (!nv50_blitter_create(screen))
       goto fail;
 
-   nv50_screen_init_hwctx(screen);
+   nv50_screen_init_hwctx(dev, screen);
 
    nouveau_fence_new(&screen->base, &screen->base.fence.current, FALSE);
 
-- 
2.2.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] nv50: enable texture compression
       [not found] ` <1420167363-3297-1-git-send-email-tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
@ 2015-01-02  3:26   ` Ilia Mirkin
       [not found]     ` <CAKb7UviwHNX-+bvzrafi13dnsJdm1fiA95miPTGdgTn7Oh_9kg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Ilia Mirkin @ 2015-01-02  3:26 UTC (permalink / raw)
  To: Tobias Klausmann; +Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

As I mentioned on IRC, I think that some color formats are
compressible. Would be nice to figure out which... e.g. trace the
blob, or just try stuff.

On Thu, Jan 1, 2015 at 9:56 PM, Tobias Klausmann
<tobias.johannes.klausmann@mni.thm.de> wrote:
> We enable compression only for some supported formats
>
> Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
> ---
>  src/gallium/drivers/nouveau/nv50/nv50_miptree.c |  4 ++--
>  src/gallium/drivers/nouveau/nv50/nv50_screen.c  | 11 +++++++++--
>  2 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> index 1aacaec..a40e6d3 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> @@ -65,8 +65,7 @@ nv50_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
>  static uint32_t
>  nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
>  {
> -   const unsigned ms = mt->ms_x + mt->ms_y;
> -
> +   const unsigned ms = util_logbase2(mt->base.base.nr_samples);
>     uint32_t tile_flags;
>
>     if (unlikely(mt->base.base.flags & NOUVEAU_RESOURCE_FLAG_LINEAR))
> @@ -96,6 +95,7 @@ nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
>        tile_flags = 0x60 + ms;
>        break;
>     default:
> +      compressed = false;
>        switch (util_format_get_blocksizebits(mt->base.base.format)) {
>        case 128:
>           assert(ms < 3);
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> index 2d8347b..8d759a7 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> @@ -391,7 +391,7 @@ nv50_screen_fence_update(struct pipe_screen *pscreen)
>  }
>
>  static void
> -nv50_screen_init_hwctx(struct nv50_screen *screen)
> +nv50_screen_init_hwctx(struct nouveau_device *dev, struct nv50_screen *screen)
>  {
>     struct nouveau_pushbuf *push = screen->base.pushbuf;
>     struct nv04_fifo *fifo;
> @@ -449,6 +449,13 @@ nv50_screen_init_hwctx(struct nv50_screen *screen)
>        PUSH_DATA (push, 0x18);
>     }
>
> +   BEGIN_NV04(push, NV50_3D(ZETA_COMP_ENABLE), 1);
> +   PUSH_DATA(push, dev->drm_version >= 0x01000101);

screen->base.device

And then no need to pass dev in, I think.

> +
> +   BEGIN_NV04(push, NV50_3D(RT_COMP_ENABLE(0)), 8);
> +   for (i = 0; i < 8; ++i)
> +      PUSH_DATA(push, dev->drm_version >= 0x01000101);
> +
>     BEGIN_NV04(push, NV50_3D(RT_CONTROL), 1);
>     PUSH_DATA (push, 1);
>
> @@ -871,7 +878,7 @@ nv50_screen_create(struct nouveau_device *dev)
>     if (!nv50_blitter_create(screen))
>        goto fail;
>
> -   nv50_screen_init_hwctx(screen);
> +   nv50_screen_init_hwctx(dev, screen);
>
>     nouveau_fence_new(&screen->base, &screen->base.fence.current, FALSE);
>
> --
> 2.2.1
>
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nouveau
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2] nv50: enable texture compression
       [not found]     ` <CAKb7UviwHNX-+bvzrafi13dnsJdm1fiA95miPTGdgTn7Oh_9kg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2015-01-02 23:09       ` Tobias Klausmann
       [not found]         ` <1420240193-16070-1-git-send-email-tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Tobias Klausmann @ 2015-01-02 23:09 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

We enable compression only for some supported formats

Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
---
 src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 23 +++++++++++++++++++++--
 src/gallium/drivers/nouveau/nv50/nv50_screen.c  |  7 +++++++
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
index 1aacaec..13ed8a3 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
@@ -65,8 +65,7 @@ nv50_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
 static uint32_t
 nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
 {
-   const unsigned ms = mt->ms_x + mt->ms_y;
-
+   const unsigned ms = util_logbase2(mt->base.base.nr_samples);
    uint32_t tile_flags;
 
    if (unlikely(mt->base.base.flags & NOUVEAU_RESOURCE_FLAG_LINEAR))
@@ -96,6 +95,26 @@ nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
       tile_flags = 0x60 + ms;
       break;
    default:
+      switch (mt->base.base.format) {
+      case PIPE_FORMAT_R16G16B16A16_FLOAT:
+      case PIPE_FORMAT_R16G16B16X16_FLOAT:
+      case PIPE_FORMAT_R8G8B8A8_UNORM:
+      case PIPE_FORMAT_R8G8B8A8_SRGB:
+      case PIPE_FORMAT_B8G8R8A8_UNORM:
+      case PIPE_FORMAT_B8G8R8A8_SRGB:
+      case PIPE_FORMAT_R10G10B10A2_UNORM:
+      case PIPE_FORMAT_B10G10R10A2_UNORM:
+      case PIPE_FORMAT_R11G11B10_FLOAT:
+      case PIPE_FORMAT_B8G8R8X8_UNORM:
+      case PIPE_FORMAT_B8G8R8X8_SRGB:
+      case PIPE_FORMAT_R8G8B8X8_UNORM:
+      case PIPE_FORMAT_R8G8B8X8_SRGB:
+         /* Allow compression for these formats if desired */
+         break;
+      default:
+         compressed = false;
+         break;
+      }
       switch (util_format_get_blocksizebits(mt->base.base.format)) {
       case 128:
          assert(ms < 3);
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index 2d8347b..da237f9 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
@@ -449,6 +449,13 @@ nv50_screen_init_hwctx(struct nv50_screen *screen)
       PUSH_DATA (push, 0x18);
    }
 
+   BEGIN_NV04(push, NV50_3D(ZETA_COMP_ENABLE), 1);
+   PUSH_DATA(push, screen->base.device->drm_version >= 0x01000101);
+
+   BEGIN_NV04(push, NV50_3D(RT_COMP_ENABLE(0)), 8);
+   for (i = 0; i < 8; ++i)
+      PUSH_DATA(push, screen->base.device->drm_version >= 0x01000101);
+
    BEGIN_NV04(push, NV50_3D(RT_CONTROL), 1);
    PUSH_DATA (push, 1);
 
-- 
2.2.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] nv50: enable texture compression
       [not found]         ` <1420240193-16070-1-git-send-email-tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
@ 2015-01-02 23:20           ` Ilia Mirkin
       [not found]             ` <CAKb7UviGAYm-mfT7DyZ-5iFW1V=hyAR8GqfZ=rNFMV0pVJ0Ggw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Ilia Mirkin @ 2015-01-02 23:20 UTC (permalink / raw)
  To: Tobias Klausmann; +Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

On Fri, Jan 2, 2015 at 6:09 PM, Tobias Klausmann
<tobias.johannes.klausmann@mni.thm.de> wrote:
> We enable compression only for some supported formats
>
> Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
> ---
>  src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 23 +++++++++++++++++++++--
>  src/gallium/drivers/nouveau/nv50/nv50_screen.c  |  7 +++++++
>  2 files changed, 28 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> index 1aacaec..13ed8a3 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> @@ -65,8 +65,7 @@ nv50_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
>  static uint32_t
>  nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)

The caller of this currently always says true. However it should
probably be drm_version >= whatever.

>  {
> -   const unsigned ms = mt->ms_x + mt->ms_y;
> -
> +   const unsigned ms = util_logbase2(mt->base.base.nr_samples);
>     uint32_t tile_flags;
>
>     if (unlikely(mt->base.base.flags & NOUVEAU_RESOURCE_FLAG_LINEAR))
> @@ -96,6 +95,26 @@ nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
>        tile_flags = 0x60 + ms;
>        break;
>     default:
> +      switch (mt->base.base.format) {

You're already switching on the format. You could be all clever and do

default:
  compressed = false;
  /* fallthrough */
case PIPE_FORMAT_A:
case PIPE_FORMAT_B:
  switch (blocksize) { ... }

It's a bit unusual to have the default case in the middle, but I'm
pretty sure it works.

BTW, I assume that there was no dmesg spam or piglit regressions with
this change?

  -ilia
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] nv50: enable texture compression
       [not found]             ` <CAKb7UviGAYm-mfT7DyZ-5iFW1V=hyAR8GqfZ=rNFMV0pVJ0Ggw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2015-01-02 23:50               ` Tobias Klausmann
       [not found]                 ` <54A72EDD.8020501-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Tobias Klausmann @ 2015-01-02 23:50 UTC (permalink / raw)
  To: Ilia Mirkin; +Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

On 03.01.2015 00:20, Ilia Mirkin wrote:
> On Fri, Jan 2, 2015 at 6:09 PM, Tobias Klausmann
> <tobias.johannes.klausmann@mni.thm.de> wrote:
>> We enable compression only for some supported formats
>>
>> Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
>> ---
>>   src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 23 +++++++++++++++++++++--
>>   src/gallium/drivers/nouveau/nv50/nv50_screen.c  |  7 +++++++
>>   2 files changed, 28 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
>> index 1aacaec..13ed8a3 100644
>> --- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
>> +++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
>> @@ -65,8 +65,7 @@ nv50_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
>>   static uint32_t
>>   nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
> The caller of this currently always says true. However it should
> probably be drm_version >= whatever.
Oh sure, i'll add it!

>
>>   {
>> -   const unsigned ms = mt->ms_x + mt->ms_y;
>> -
>> +   const unsigned ms = util_logbase2(mt->base.base.nr_samples);
>>      uint32_t tile_flags;
>>
>>      if (unlikely(mt->base.base.flags & NOUVEAU_RESOURCE_FLAG_LINEAR))
>> @@ -96,6 +95,26 @@ nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
>>         tile_flags = 0x60 + ms;
>>         break;
>>      default:
>> +      switch (mt->base.base.format) {
> You're already switching on the format. You could be all clever and do
>
> default:
>    compressed = false;
>    /* fallthrough */
> case PIPE_FORMAT_A:
> case PIPE_FORMAT_B:
>    switch (blocksize) { ... }
>
> It's a bit unusual to have the default case in the middle, but I'm
> pretty sure it works.
We talked about broken compilers, hope we don't hit one here :D

>
> BTW, I assume that there was no dmesg spam or piglit regressions with
> this change?
Indeed!

>
>    -ilia

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3] nv50: enable texture compression
       [not found]                 ` <54A72EDD.8020501-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
@ 2015-01-03  0:00                   ` Tobias Klausmann
  0 siblings, 0 replies; 6+ messages in thread
From: Tobias Klausmann @ 2015-01-03  0:00 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

We enable compression only for some supported formats

Suggested-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
---
v2: add more formats for compression
v3: only enable compression if supported by drm

 src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 21 ++++++++++++++++++---
 src/gallium/drivers/nouveau/nv50/nv50_screen.c  |  7 +++++++
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
index 1aacaec..cc1ad65 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
@@ -65,8 +65,7 @@ nv50_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
 static uint32_t
 nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
 {
-   const unsigned ms = mt->ms_x + mt->ms_y;
-
+   const unsigned ms = util_logbase2(mt->base.base.nr_samples);
    uint32_t tile_flags;
 
    if (unlikely(mt->base.base.flags & NOUVEAU_RESOURCE_FLAG_LINEAR))
@@ -96,6 +95,21 @@ nv50_mt_choose_storage_type(struct nv50_miptree *mt, boolean compressed)
       tile_flags = 0x60 + ms;
       break;
    default:
+      compressed = false;
+      /* fallthrough */
+   case PIPE_FORMAT_R16G16B16A16_FLOAT:
+   case PIPE_FORMAT_R16G16B16X16_FLOAT:
+   case PIPE_FORMAT_R8G8B8A8_UNORM:
+   case PIPE_FORMAT_R8G8B8A8_SRGB:
+   case PIPE_FORMAT_B8G8R8A8_UNORM:
+   case PIPE_FORMAT_B8G8R8A8_SRGB:
+   case PIPE_FORMAT_R10G10B10A2_UNORM:
+   case PIPE_FORMAT_B10G10R10A2_UNORM:
+   case PIPE_FORMAT_R11G11B10_FLOAT:
+   case PIPE_FORMAT_B8G8R8X8_UNORM:
+   case PIPE_FORMAT_B8G8R8X8_SRGB:
+   case PIPE_FORMAT_R8G8B8X8_UNORM:
+   case PIPE_FORMAT_R8G8B8X8_SRGB:
       switch (util_format_get_blocksizebits(mt->base.base.format)) {
       case 128:
          assert(ms < 3);
@@ -318,6 +332,7 @@ nv50_miptree_create(struct pipe_screen *pscreen,
    struct nouveau_device *dev = nouveau_screen(pscreen)->device;
    struct nv50_miptree *mt = CALLOC_STRUCT(nv50_miptree);
    struct pipe_resource *pt = &mt->base.base;
+   boolean compressed = dev->drm_version >= 0x01000101;
    int ret;
    union nouveau_bo_config bo_config;
    uint32_t bo_flags;
@@ -333,7 +348,7 @@ 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);
+   bo_config.nv50.memtype = nv50_mt_choose_storage_type(mt, compressed);
 
    if (!nv50_miptree_init_ms_mode(mt)) {
       FREE(mt);
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index 2d8347b..da237f9 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
@@ -449,6 +449,13 @@ nv50_screen_init_hwctx(struct nv50_screen *screen)
       PUSH_DATA (push, 0x18);
    }
 
+   BEGIN_NV04(push, NV50_3D(ZETA_COMP_ENABLE), 1);
+   PUSH_DATA(push, screen->base.device->drm_version >= 0x01000101);
+
+   BEGIN_NV04(push, NV50_3D(RT_COMP_ENABLE(0)), 8);
+   for (i = 0; i < 8; ++i)
+      PUSH_DATA(push, screen->base.device->drm_version >= 0x01000101);
+
    BEGIN_NV04(push, NV50_3D(RT_CONTROL), 1);
    PUSH_DATA (push, 1);
 
-- 
2.2.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-01-03  0:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-02  2:56 [PATCH] nv50: enable texture compression Tobias Klausmann
     [not found] ` <1420167363-3297-1-git-send-email-tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-01-02  3:26   ` Ilia Mirkin
     [not found]     ` <CAKb7UviwHNX-+bvzrafi13dnsJdm1fiA95miPTGdgTn7Oh_9kg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-02 23:09       ` [PATCH v2] " Tobias Klausmann
     [not found]         ` <1420240193-16070-1-git-send-email-tobias.johannes.klausmann-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-01-02 23:20           ` Ilia Mirkin
     [not found]             ` <CAKb7UviGAYm-mfT7DyZ-5iFW1V=hyAR8GqfZ=rNFMV0pVJ0Ggw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-02 23:50               ` Tobias Klausmann
     [not found]                 ` <54A72EDD.8020501-AqjdNwhu20eELgA04lAiVw@public.gmane.org>
2015-01-03  0:00                   ` [PATCH v3] " Tobias Klausmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.