X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fr600%2Fsb%2Fsb_shader.cpp;h=321e24ea256e51a1d484b77fdfda9d5496a46adf;hb=43c23ba9bff17a1438a5091d26035b6284d50d35;hp=87e28e9815752c0f8e609f4c83a7bbfdeea97704;hpb=1befb7ed9856381cbfe874f361fae73b8e331bb4;p=mesa.git diff --git a/src/gallium/drivers/r600/sb/sb_shader.cpp b/src/gallium/drivers/r600/sb/sb_shader.cpp index 87e28e98157..321e24ea256 100644 --- a/src/gallium/drivers/r600/sb/sb_shader.cpp +++ b/src/gallium/drivers/r600/sb/sb_shader.cpp @@ -91,6 +91,7 @@ cf_node* shader::create_clause(node_subtype nst) { case NST_ALU_CLAUSE: n->bc.set_op(CF_OP_ALU); break; case NST_TEX_CLAUSE: n->bc.set_op(CF_OP_TEX); break; case NST_VTX_CLAUSE: n->bc.set_op(CF_OP_VTX); break; + case NST_GDS_CLAUSE: n->bc.set_op(CF_OP_GDS); break; default: assert(!"invalid clause type"); break; } @@ -215,7 +216,7 @@ void shader::init() { void shader::init_call_fs(cf_node* cf) { unsigned gpr = 0; - assert(target == TARGET_VS || target == TARGET_ES); + assert(target == TARGET_LS || target == TARGET_VS || target == TARGET_ES); for(inputs_vec::const_iterator I = inputs.begin(), E = inputs.end(); I != E; ++I, ++gpr) { @@ -436,6 +437,8 @@ const char* shader::get_shader_target_name() { case TARGET_ES: return "ES"; case TARGET_PS: return "PS"; case TARGET_GS: return "GS"; + case TARGET_HS: return "HS"; + case TARGET_LS: return "LS"; case TARGET_COMPUTE: return "COMPUTE"; case TARGET_FETCH: return "FETCH"; default: @@ -595,6 +598,8 @@ sched_queue_id shader::get_queue_id(node* n) { fetch_node *f = static_cast(n); if (ctx.is_r600() && (f->bc.op_ptr->flags & FF_VTX)) return SQ_VTX; + if (f->bc.op_ptr->flags & FF_GDS) + return SQ_GDS; return SQ_TEX; } case NST_CF_INST: