summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2012-07-31 23:32:14 +0200
committerChristoph Bumiller <[email protected]>2012-08-01 15:39:46 +0200
commit8592933de82f7742f411cb2f2c339ff7d42266da (patch)
tree1d745c06fc8601af93638d696dd5f27a7de73e59
parent6286d9810b7ebae588060370cd7a63c327478a2f (diff)
nv50,nvc0: make resolve sampler objects allow sRGB conversion
Just figured out what that bit does. Note: It's converted back to sRGB on write, so no effective conversion occurs.
-rw-r--r--src/gallium/drivers/nv50/nv50_surface.c14
-rw-r--r--src/gallium/drivers/nv50/nv50_texture.xml.h9
-rw-r--r--src/gallium/drivers/nvc0/nvc0_surface.c14
3 files changed, 25 insertions, 12 deletions
diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c
index 0872f8d0dc4..69bc77233f5 100644
--- a/src/gallium/drivers/nv50/nv50_surface.c
+++ b/src/gallium/drivers/nv50/nv50_surface.c
@@ -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
diff --git a/src/gallium/drivers/nv50/nv50_texture.xml.h b/src/gallium/drivers/nv50/nv50_texture.xml.h
index 34accd81741..fc76ec7a7b6 100644
--- a/src/gallium/drivers/nv50/nv50_texture.xml.h
+++ b/src/gallium/drivers/nv50/nv50_texture.xml.h
@@ -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 <[email protected]> (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
diff --git a/src/gallium/drivers/nvc0/nvc0_surface.c b/src/gallium/drivers/nvc0/nvc0_surface.c
index 607b02e0277..d52de0b6186 100644
--- a/src/gallium/drivers/nvc0/nvc0_surface.c
+++ b/src/gallium/drivers/nvc0/nvc0_surface.c
@@ -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