d3d12: store only once in d3d12_emit_points
d3d12_lower_point_sprite expects a single store for each output, each dominating the emit_vertex. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32005>
This commit is contained in:
@@ -43,7 +43,6 @@ spec@!opengl 3.2@gl-3.2-adj-prims pv-last,Fail
|
||||
spec@arb_draw_indirect@arb_draw_indirect-api-errors,Crash
|
||||
spec@arb_framebuffer_object@fbo-blit-scaled-linear,Fail
|
||||
spec@arb_get_program_binary@restore-sso-program,Fail
|
||||
spec@arb_point_sprite@arb_point_sprite-mipmap,Fail
|
||||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex,Fail
|
||||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2' on GL_PROGRAM_INPUT,Fail
|
||||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT,Fail
|
||||
|
||||
@@ -373,11 +373,12 @@ d3d12_emit_points(struct d3d12_context *ctx, struct d3d12_gs_variant_key *key)
|
||||
nir_deref_instr *in_value = nir_build_deref_array(b, nir_build_deref_var(b, emit_ctx.in[i]), index);
|
||||
if (emit_ctx.in[i]->data.location == VARYING_SLOT_POS && emit_ctx.edgeflag_cmp) {
|
||||
nir_if *edge_check = nir_push_if(b, emit_ctx.edgeflag_cmp);
|
||||
copy_vars(b, nir_build_deref_var(b, emit_ctx.out[i]), in_value);
|
||||
nir_def *pos_then = nir_load_deref(b, in_value);
|
||||
nir_if *edge_else = nir_push_else(b, edge_check);
|
||||
nir_store_deref(b, nir_build_deref_var(b, emit_ctx.out[i]),
|
||||
nir_imm_vec4(b, -2.0, -2.0, 0.0, 1.0), 0xf);
|
||||
nir_def *pos_else = nir_imm_vec4(b, -2.0, -2.0, 0.0, 1.0);
|
||||
nir_pop_if(b, edge_else);
|
||||
nir_def *pos = nir_if_phi(b, pos_then, pos_else);
|
||||
nir_store_deref(b, nir_build_deref_var(b, emit_ctx.out[i]), pos, 0xf);
|
||||
} else {
|
||||
copy_vars(b, nir_build_deref_var(b, emit_ctx.out[i]), in_value);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user