diff options
author | Christoph Bumiller <[email protected]> | 2011-10-12 18:04:50 +0200 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2011-10-21 23:00:36 +0200 |
commit | 903e3257d071caeeec84a096069a78b55666f72d (patch) | |
tree | 8a61a63bd1b2f17a029b1a0e73a6b35ea553950b /src/gallium/state_trackers/d3d1x | |
parent | d2cc8aedb5d544608842b58b6ae4754313ded939 (diff) |
d3d1x: add FORK/JOIN phase opcodes to declarations
The phase instance counts are not necessarily redeclared so with
the separation of declarations and instructions we wouldn't know
which instance count applies to which phase.
Diffstat (limited to 'src/gallium/state_trackers/d3d1x')
-rw-r--r-- | src/gallium/state_trackers/d3d1x/d3d1xshader/src/sm4_parse.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/d3d1x/d3d1xshader/src/sm4_parse.cpp b/src/gallium/state_trackers/d3d1x/d3d1xshader/src/sm4_parse.cpp index f406b1f8dca..9d7392b9a2c 100644 --- a/src/gallium/state_trackers/d3d1x/d3d1xshader/src/sm4_parse.cpp +++ b/src/gallium/state_trackers/d3d1x/d3d1xshader/src/sm4_parse.cpp @@ -202,6 +202,15 @@ relative: continue; } + if(opcode == SM4_OPCODE_HS_FORK_PHASE || opcode == SM4_OPCODE_HS_JOIN_PHASE) + { + // need to interleave these with the declarations or we cannot + // assign fork/join phase instance counts to phases + sm4_dcl& dcl = *new sm4_dcl; + program.dcls.push_back(&dcl); + dcl.opcode = opcode; + } + if((opcode >= SM4_OPCODE_DCL_RESOURCE && opcode <= SM4_OPCODE_DCL_GLOBAL_FLAGS) || (opcode >= SM4_OPCODE_DCL_STREAM && opcode <= SM4_OPCODE_DCL_RESOURCE_STRUCTURED)) { |