nv50,nvc0: make resolve sampler objects allow sRGB conversion
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Tue, 31 Jul 2012 21:32:14 +0000 (23:32 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Wed, 1 Aug 2012 13:39:46 +0000 (15:39 +0200)
Just figured out what that bit does.

Note: It's converted back to sRGB on write, so no effective
conversion occurs.

src/gallium/drivers/nv50/nv50_surface.c
src/gallium/drivers/nv50/nv50_texture.xml.h
src/gallium/drivers/nvc0/nvc0_surface.c

index 0872f8d0dc447eb71a72f8d8d573464b93cb046a..69bc77233f57255b87539e4f85e335a1ffbe99e0 100644 (file)
@@ -33,6 +33,7 @@
 #include "nv50_resource.h"
 
 #include "nv50_defs.xml.h"
+#include "nv50_texture.xml.h"
 
 #define NV50_ENG2D_SUPPORTED_FORMATS 0xff0843e080608409ULL
 
@@ -598,15 +599,20 @@ nv50_blitctx_make_sampler(struct nv50_blitctx *blit)
 
    blit->sampler[0].id = -1;
 
-   blit->sampler[0].tsc[0] = 0x00000092;
-   blit->sampler[0].tsc[1] = 0x00000051;
+   blit->sampler[0].tsc[0] = NV50_TSC_0_SRGB_CONVERSION_ALLOWED |
+      (NV50_TSC_WRAP_CLAMP_TO_EDGE << NV50_TSC_0_WRAPS__SHIFT) |
+      (NV50_TSC_WRAP_CLAMP_TO_EDGE << NV50_TSC_0_WRAPT__SHIFT) |
+      (NV50_TSC_WRAP_CLAMP_TO_EDGE << NV50_TSC_0_WRAPR__SHIFT);
+   blit->sampler[0].tsc[1] =
+      NV50_TSC_1_MAGF_NEAREST | NV50_TSC_1_MINF_NEAREST | NV50_TSC_1_MIPF_NONE;
 
    /* clamp to edge, min/max lod = 0, bilinear filtering */
 
    blit->sampler[1].id = -1;
 
-   blit->sampler[1].tsc[0] = 0x00000092;
-   blit->sampler[1].tsc[1] = 0x00000062;
+   blit->sampler[1].tsc[0] = blit->sampler[0].tsc[0];
+   blit->sampler[1].tsc[1] =
+      NV50_TSC_1_MAGF_LINEAR | NV50_TSC_1_MINF_LINEAR | NV50_TSC_1_MIPF_NONE;
 }
 
 /* Since shaders cannot export stencil, we cannot copy stencil values when
index 34accd81741de71b292e374bbcd1030b4bd16f2d..fc76ec7a7b60b57d41a33fceadd00398861040cf 100644 (file)
@@ -8,10 +8,10 @@ http://0x04.net/cgit/index.cgi/rules-ng-ng
 git clone git://0x04.net/rules-ng-ng
 
 The rules-ng-ng source files this header was generated from are:
-- rnndb/nv50_texture.xml (   8111 bytes, from 2012-04-29 11:17:45)
-- ./rnndb/copyright.xml  (   6452 bytes, from 2011-08-11 18:25:12)
-- ./rnndb/nvchipsets.xml (   3701 bytes, from 2012-03-22 20:40:59)
-- ./rnndb/nv50_defs.xml  (   5468 bytes, from 2011-08-11 18:25:12)
+- rnndb/nv50_texture.xml (   8180 bytes, from 2012-07-31 11:07:50)
+- ./rnndb/copyright.xml  (   6452 bytes, from 2011-07-10 21:35:25)
+- ./rnndb/nvchipsets.xml (   3736 bytes, from 2012-07-31 11:01:16)
+- ./rnndb/nv50_defs.xml  (   5468 bytes, from 2011-07-10 21:35:25)
 
 Copyright (C) 2006-2012 by the following authors:
 - Artur Huillet <arthur.huillet@free.fr> (ahuillet)
@@ -242,6 +242,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NV50_TSC_0_SHADOW_COMPARE_ENABLE                       0x00000200
 #define NV50_TSC_0_SHADOW_COMPARE_FUNC__MASK                   0x00001c00
 #define NV50_TSC_0_SHADOW_COMPARE_FUNC__SHIFT                  10
+#define NV50_TSC_0_SRGB_CONVERSION_ALLOWED                     0x00002000
 #define NV50_TSC_0_BOX_S__MASK                                 0x0001c000
 #define NV50_TSC_0_BOX_S__SHIFT                                        14
 #define NV50_TSC_0_BOX_T__MASK                                 0x000e0000
index 607b02e0277dee6dc4aeeef679e850d545ad8d0a..d52de0b618621d03f153bc1f298f7b62e86baea4 100644 (file)
@@ -33,6 +33,7 @@
 #include "nvc0_resource.h"
 
 #include "nv50/nv50_defs.xml.h"
+#include "nv50/nv50_texture.xml.h"
 
 #define NVC0_ENG2D_SUPPORTED_FORMATS 0xff9ccfe1cce3ccc9ULL
 
@@ -664,15 +665,20 @@ nvc0_blitctx_make_sampler(struct nvc0_blitctx *blit)
 
    blit->sampler[0].id = -1;
 
-   blit->sampler[0].tsc[0] = 0x00000092;
-   blit->sampler[0].tsc[1] = 0x00000051;
+   blit->sampler[0].tsc[0] = NV50_TSC_0_SRGB_CONVERSION_ALLOWED |
+      (NV50_TSC_WRAP_CLAMP_TO_EDGE << NV50_TSC_0_WRAPS__SHIFT) |
+      (NV50_TSC_WRAP_CLAMP_TO_EDGE << NV50_TSC_0_WRAPT__SHIFT) |
+      (NV50_TSC_WRAP_CLAMP_TO_EDGE << NV50_TSC_0_WRAPR__SHIFT);
+   blit->sampler[0].tsc[1] =
+      NV50_TSC_1_MAGF_NEAREST | NV50_TSC_1_MINF_NEAREST | NV50_TSC_1_MIPF_NONE;
 
    /* clamp to edge, min/max lod = 0, bilinear filtering */
 
    blit->sampler[1].id = -1;
 
-   blit->sampler[1].tsc[0] = 0x00000092;
-   blit->sampler[1].tsc[1] = 0x00000062;
+   blit->sampler[1].tsc[0] = blit->sampler[0].tsc[0];
+   blit->sampler[1].tsc[1] =
+      NV50_TSC_1_MAGF_LINEAR | NV50_TSC_1_MINF_LINEAR | NV50_TSC_1_MIPF_NONE;
 }
 
 /* Since shaders cannot export stencil, we cannot copy stencil values when