Lines Matching defs:atomic

3208       vtn_fail_with_opcode("Invalid SPIR-V atomic", opcode);
3632 vtn_fail("Invalid uniform atomic");
3664 vtn_fail_with_opcode("Invalid shared atomic", opcode);
3669 * Handles shared atomics, ssbo atomics and atomic counters.
3676 nir_intrinsic_instr *atomic;
3714 vtn_fail_with_opcode("Invalid SPIR-V atomic", opcode);
3720 /* uniform as "atomic counter uniform" */
3724 atomic = nir_intrinsic_instr_create(b->nb.shader, op);
3725 atomic->src[0] = nir_src_for_ssa(&deref->dest.ssa);
3749 * atomic counter uniforms doesn't have sources
3754 unreachable("Invalid SPIR-V atomic");
3761 atomic = nir_intrinsic_instr_create(b->nb.shader, op);
3762 atomic->src[0] = nir_src_for_ssa(&deref->dest.ssa);
3767 nir_intrinsic_set_access(atomic, access);
3771 atomic->num_components = glsl_get_vector_elements(deref_type);
3775 atomic->num_components = glsl_get_vector_elements(deref_type);
3776 nir_intrinsic_set_write_mask(atomic, (1 << atomic->num_components) - 1);
3777 atomic->src[1] = nir_src_for_ssa(vtn_get_nir_ssa(b, w[4]));
3781 atomic->num_components = 1;
3782 nir_intrinsic_set_write_mask(atomic, 1);
3783 atomic->src[1] = nir_src_for_ssa(nir_imm_intN_t(&b->nb, 0, 32));
3786 atomic->src[1] = nir_src_for_ssa(nir_imm_intN_t(&b->nb, 0, 32));
3787 atomic->src[2] = nir_src_for_ssa(nir_imm_intN_t(&b->nb, -1, 32));
3806 fill_common_atomic_sources(b, opcode, w, &atomic->src[1]);
3810 vtn_fail_with_opcode("Invalid SPIR-V atomic", opcode);
3814 /* Atomic ordering operations will implicitly apply to the atomic operation
3830 /* map atomic flag to a 32-bit atomic integer. */
3831 nir_ssa_dest_init(&atomic->instr, &atomic->dest,
3834 nir_ssa_dest_init(&atomic->instr, &atomic->dest,
3838 vtn_push_nir_ssa(b, w[2], &atomic->dest.ssa);
3842 nir_builder_instr_insert(&b->nb, &atomic->instr);
3845 vtn_push_nir_ssa(b, w[2], nir_i2b1(&b->nb, &atomic->dest.ssa));