Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorMike Erwin <significant.bit@gmail.com>2017-03-02 11:16:02 +0300
committerMike Erwin <significant.bit@gmail.com>2017-03-02 11:16:02 +0300
commit869f2940c2bd17f46695f9213fedd78e6b7c5ac2 (patch)
tree32c8891a1bea51adf49500f74ed4acfc984aab22 /source
parentb463cd2ab8f1a48200e6b348002ac88d3a8507ca (diff)
Gawain: allow use of final 2 bits of 10_10_10_2 format
Requested by @fclem
Diffstat (limited to 'source')
-rw-r--r--source/blender/gpu/gawain/vertex_format.c6
-rw-r--r--source/blender/gpu/gawain/vertex_format.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/gpu/gawain/vertex_format.c b/source/blender/gpu/gawain/vertex_format.c
index 671b979a810..d42398f3a4f 100644
--- a/source/blender/gpu/gawain/vertex_format.c
+++ b/source/blender/gpu/gawain/vertex_format.c
@@ -120,8 +120,10 @@ unsigned add_attrib(VertexFormat* format, const char* name, VertexCompType comp_
break;
#if USE_10_10_10
case COMP_I10:
- assert(comp_ct == 3); // 10_10_10 format intended for normals (xyz) or colors (rgb)
- assert(fetch_mode == NORMALIZE_INT_TO_FLOAT);
+ // 10_10_10 format intended for normals (xyz) or colors (rgb)
+ // extra component packed.w can be manually set to { -2, -1, 0, 1 }
+ assert(comp_ct == 3 || comp_ct == 4);
+ assert(fetch_mode == NORMALIZE_INT_TO_FLOAT); // not strictly required, may relax later
break;
#endif
default:
diff --git a/source/blender/gpu/gawain/vertex_format.h b/source/blender/gpu/gawain/vertex_format.h
index 66477b0cfc7..4ed9e58f376 100644
--- a/source/blender/gpu/gawain/vertex_format.h
+++ b/source/blender/gpu/gawain/vertex_format.h
@@ -74,7 +74,7 @@ typedef struct {
int x : 10;
int y : 10;
int z : 10;
- int w : 2; // ignored for our purposes
+ int w : 2; // 0 by default, can manually set to { -2, -1, 0, 1 }
} PackedNormal;
PackedNormal convert_i10_v3(const float data[3]);