Lines Matching refs:params
3871 emit_texture_size(struct ntd_context *ctx, struct texop_parameters *params)
3879 params->tex,
3880 params->lod_or_sample
3897 struct texop_parameters params = {
3901 const struct dxil_value *dimensions = emit_texture_size(ctx, ¶ms);
3927 struct texop_parameters params = {
3933 const struct dxil_value *dimensions = emit_texture_size(ctx, ¶ms);
4633 emit_sample(struct ntd_context *ctx, struct texop_parameters *params)
4635 const struct dxil_func *func = dxil_get_function(&ctx->mod, "dx.op.sample", params->overload);
4641 params->tex, params->sampler,
4642 params->coord[0], params->coord[1], params->coord[2], params->coord[3],
4643 params->offset[0], params->offset[1], params->offset[2],
4644 params->min_lod
4651 emit_sample_bias(struct ntd_context *ctx, struct texop_parameters *params)
4653 const struct dxil_func *func = dxil_get_function(&ctx->mod, "dx.op.sampleBias", params->overload);
4657 assert(params->bias != NULL);
4661 params->tex, params->sampler,
4662 params->coord[0], params->coord[1], params->coord[2], params->coord[3],
4663 params->offset[0], params->offset[1], params->offset[2],
4664 params->bias, params->min_lod
4671 emit_sample_level(struct ntd_context *ctx, struct texop_parameters *params)
4673 const struct dxil_func *func = dxil_get_function(&ctx->mod, "dx.op.sampleLevel", params->overload);
4677 assert(params->lod_or_sample != NULL);
4681 params->tex, params->sampler,
4682 params->coord[0], params->coord[1], params->coord[2], params->coord[3],
4683 params->offset[0], params->offset[1], params->offset[2],
4684 params->lod_or_sample
4691 emit_sample_cmp(struct ntd_context *ctx, struct texop_parameters *params)
4712 params->tex, params->sampler,
4713 params->coord[0], params->coord[1], params->coord[2], params->coord[3],
4714 params->offset[0], params->offset[1], params->offset[2],
4715 params->cmp, params->min_lod
4722 emit_sample_grad(struct ntd_context *ctx, struct texop_parameters *params)
4724 const struct dxil_func *func = dxil_get_function(&ctx->mod, "dx.op.sampleGrad", params->overload);
4730 params->tex, params->sampler,
4731 params->coord[0], params->coord[1], params->coord[2], params->coord[3],
4732 params->offset[0], params->offset[1], params->offset[2],
4733 params->dx[0], params->dx[1], params->dx[2],
4734 params->dy[0], params->dy[1], params->dy[2],
4735 params->min_lod
4742 emit_texel_fetch(struct ntd_context *ctx, struct texop_parameters *params)
4744 const struct dxil_func *func = dxil_get_function(&ctx->mod, "dx.op.textureLoad", params->overload);
4748 if (!params->lod_or_sample)
4749 params->lod_or_sample = dxil_module_get_undef(&ctx->mod, dxil_module_get_int_type(&ctx->mod, 32));
4753 params->tex,
4754 params->lod_or_sample, params->coord[0], params->coord[1], params->coord[2],
4755 params->offset[0], params->offset[1], params->offset[2]
4762 emit_texture_lod(struct ntd_context *ctx, struct texop_parameters *params, bool clamped)
4770 params->tex,
4771 params->sampler,
4772 params->coord[0],
4773 params->coord[1],
4774 params->coord[2],
4782 emit_texture_gather(struct ntd_context *ctx, struct texop_parameters *params, unsigned component)
4785 params->cmp ? "dx.op.textureGatherCmp" : "dx.op.textureGather", params->overload);
4790 dxil_module_get_int32_const(&ctx->mod, params->cmp ?
4792 params->tex,
4793 params->sampler,
4794 params->coord[0],
4795 params->coord[1],
4796 params->coord[2],
4797 params->coord[3],
4798 params->offset[0],
4799 params->offset[1],
4801 params->cmp
4804 return dxil_emit_call(&ctx->mod, func, args, ARRAY_SIZE(args) - (params->cmp ? 0 : 1));
4810 struct texop_parameters params;
4811 memset(¶ms, 0, sizeof(struct texop_parameters));
4813 params.tex = ctx->srv_handles[instr->texture_index];
4814 params.sampler = ctx->sampler_handles[instr->sampler_index];
4823 params.overload = get_overload(instr->dest_type, 32);
4830 coord_components = get_n_src(ctx, params.coord, ARRAY_SIZE(params.coord),
4837 offset_components = get_n_src(ctx, params.offset, ARRAY_SIZE(params.offset),
4846 params.bias = get_src(ctx, &instr->src[i].src, 0, nir_type_float);
4847 if (!params.bias)
4860 params.lod_or_sample = get_src(ctx, &instr->src[i].src, 0, type);
4862 params.lod_or_sample = int_undef;
4863 if (!params.lod_or_sample)
4869 params.min_lod = get_src(ctx, &instr->src[i].src, 0, type);
4870 if (!params.min_lod)
4876 params.cmp = get_src(ctx, &instr->src[i].src, 0, nir_type_float);
4877 if (!params.cmp)
4882 dx_components = get_n_src(ctx, params.dx, ARRAY_SIZE(params.dx),
4889 dy_components = get_n_src(ctx, params.dy, ARRAY_SIZE(params.dy),
4896 params.lod_or_sample = get_src(ctx, &instr->src[i].src, 0, nir_type_int);
4897 if (!params.lod_or_sample)
4903 params.tex = get_src_ssa(ctx, instr->src[i].src.ssa, 0);
4908 params.sampler = get_src_ssa(ctx, instr->src[i].src.ssa, 0);
4912 params.tex = emit_createhandle_call(ctx, DXIL_RESOURCE_CLASS_SRV,
4922 params.sampler = emit_createhandle_call(ctx, DXIL_RESOURCE_CLASS_SAMPLER,
4940 assert(params.tex != NULL);
4944 params.sampler != NULL);
4946 PAD_SRC(ctx, params.coord, coord_components, float_undef);
4947 PAD_SRC(ctx, params.offset, offset_components, int_undef);
4948 if (!params.min_lod) params.min_lod = float_undef;
4953 sample = emit_sample_bias(ctx, ¶ms);
4957 if (params.cmp != NULL) {
4958 sample = emit_sample_cmp(ctx, ¶ms);
4961 sample = emit_sample(ctx, ¶ms);
4964 params.lod_or_sample = dxil_module_get_float_const(&ctx->mod, 0);
4967 sample = emit_sample_level(ctx, ¶ms);
4971 PAD_SRC(ctx, params.dx, dx_components, float_undef);
4972 PAD_SRC(ctx, params.dy, dy_components,float_undef);
4973 sample = emit_sample_grad(ctx, ¶ms);
4979 params.coord[1] = int_undef;
4980 sample = emit_bufferload_call(ctx, params.tex, params.coord, params.overload);
4982 PAD_SRC(ctx, params.coord, coord_components, int_undef);
4983 sample = emit_texel_fetch(ctx, ¶ms);
4988 sample = emit_texture_size(ctx, ¶ms);
4992 sample = emit_texture_gather(ctx, ¶ms, instr->component);
4996 sample = emit_texture_lod(ctx, ¶ms, true);
4998 sample = emit_texture_lod(ctx, ¶ms, false);
5003 params.lod_or_sample = dxil_module_get_int_const(&ctx->mod, 0, 32);
5004 sample = emit_texture_size(ctx, ¶ms);