st/nine: Add asserts for output/input packing
authorAxel Davy <axel.davy@ens.fr>
Sat, 19 Mar 2016 18:27:34 +0000 (19:27 +0100)
committerAxel Davy <axel.davy@ens.fr>
Wed, 18 May 2016 21:37:14 +0000 (23:37 +0200)
Nine doesn't support vs output/ps input packing.
We haven't found any application requiring that,
and implementing it properly is complex.

Add asserts for now.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
src/gallium/state_trackers/nine/nine_shader.c

index 2e822ce80c9ac87d230abc74946f98090c4bac22..bd373d7c3210131ca85449f2759ecf09a17d17d4 100644 (file)
@@ -2040,6 +2040,7 @@ DECL_SPECIAL(DCL)
             if (sem.usage == D3DDECLUSAGE_POSITIONT)
                 tx->info->position_t = TRUE;
             assert(sem.reg.idx < ARRAY_SIZE(tx->regs.o));
+            assert(ureg_dst_is_undef(tx->regs.o[sem.reg.idx]) && "Nine doesn't support yet packing");
             tx->regs.o[sem.reg.idx] = ureg_DECL_output_masked(
                 ureg, tgsi.Name, tgsi.Index, sem.reg.mask, 0, 1);
 
@@ -2053,6 +2054,7 @@ DECL_SPECIAL(DCL)
             unsigned interp_location = 0;
             /* SM3 only, SM2 input semantic determined by file */
             assert(sem.reg.idx < ARRAY_SIZE(tx->regs.v));
+            assert(ureg_src_is_undef(tx->regs.v[sem.reg.idx]) && "Nine doesn't support yet packing");
             /* PositionT and tessfactor forbidden */
             if (sem.usage == D3DDECLUSAGE_POSITIONT || sem.usage == D3DDECLUSAGE_TESSFACTOR)
                 return D3DERR_INVALIDCALL;