Lines Matching refs:ctx

49 byte_offset_to_address(struct ir3_context *ctx,
53 struct ir3_block *b = ctx->block;
55 if (ctx->compiler->gen == 4) {
61 if (fd_dev_64b(ctx->compiler->dev_id)) {
70 emit_intrinsic_load_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr,
73 struct ir3_block *b = ctx->block;
76 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]);
78 byte_offset = ir3_get_src(ctx, &intr->src[1])[0];
79 offset = ir3_get_src(ctx, &intr->src[2])[0];
82 src0 = byte_offset_to_address(ctx, &intr->src[0], byte_offset);
98 emit_intrinsic_store_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr)
100 struct ir3_block *b = ctx->block;
107 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[1]);
109 byte_offset = ir3_get_src(ctx, &intr->src[2])[0];
110 offset = ir3_get_src(ctx, &intr->src[3])[0];
115 src0 = ir3_create_collect(b, ir3_get_src(ctx, &intr->src[0]), ncomp);
117 src2 = byte_offset_to_address(ctx, &intr->src[1], byte_offset);
152 emit_intrinsic_atomic_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr)
154 struct ir3_block *b = ctx->block;
158 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]);
160 struct ir3_instruction *data = ir3_get_src(ctx, &intr->src[2])[0];
163 byte_offset_to_address(ctx, &intr->src[0], ir3_get_src(ctx, &intr->src[1])[0]);
165 struct ir3_instruction *src3 = ir3_get_src(ctx, &intr->src[3])[0];
200 struct ir3_instruction *dword_offset = ir3_get_src(ctx, &intr->src[4])[0];
221 get_image_offset(struct ir3_context *ctx, const nir_intrinsic_instr *instr,
224 struct ir3_block *b = ctx->block;
233 if (ctx->compiler->gen > 4) {
234 const struct ir3_const_state *const_state = ir3_const_state(ctx->so);
240 index += ctx->s->info.num_ssbos;
245 if (ctx->compiler->gen == 4)
261 if (ctx->compiler->gen == 4)
272 if (fd_dev_64b(ctx->compiler->dev_id))
280 emit_intrinsic_load_image(struct ir3_context *ctx, nir_intrinsic_instr *intr,
283 struct ir3_block *b = ctx->block;
284 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]);
285 struct ir3_instruction *ibo = ir3_image_to_ibo(ctx, intr->src[0]);
286 struct ir3_instruction *offset = get_image_offset(ctx, intr, coords, true);
298 if (ctx->compiler->gen > 4) {
328 emit_intrinsic_store_image(struct ir3_context *ctx, nir_intrinsic_instr *intr)
330 struct ir3_block *b = ctx->block;
332 struct ir3_instruction *const *value = ir3_get_src(ctx, &intr->src[3]);
333 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]);
334 struct ir3_instruction *ibo = ir3_image_to_ibo(ctx, intr->src[0]);
344 offset = get_image_offset(ctx, intr, coords, true);
365 emit_intrinsic_atomic_image(struct ir3_context *ctx, nir_intrinsic_instr *intr)
367 struct ir3_block *b = ctx->block;
369 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]);
370 struct ir3_instruction *image = ir3_image_to_ibo(ctx, intr->src[0]);
377 src0 = ir3_get_src(ctx, &intr->src[3])[0];
379 src2 = get_image_offset(ctx, intr, coords, ctx->compiler->gen == 4);
407 src0 = ir3_collect(b, ir3_get_src(ctx, &intr->src[4])[0], src0);
417 atomic->cat6.typed = ctx->compiler->gen == 5;
428 emit_intrinsic_atomic_global(struct ir3_context *ctx, nir_intrinsic_instr *intr)