From 869f2940c2bd17f46695f9213fedd78e6b7c5ac2 Mon Sep 17 00:00:00 2001 From: Mike Erwin Date: Thu, 2 Mar 2017 03:16:02 -0500 Subject: Gawain: allow use of final 2 bits of 10_10_10_2 format Requested by @fclem --- source/blender/gpu/gawain/vertex_format.c | 6 ++++-- source/blender/gpu/gawain/vertex_format.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'source') 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]); -- cgit v1.2.3