Lines Matching refs:mapping
31 * SSBO/Image to/from IBO/tex hw mapping table:
35 ir3_ibo_mapping_init(struct ir3_ibo_mapping *mapping, unsigned num_textures)
37 memset(mapping, IBO_INVALID, sizeof(*mapping));
38 mapping->num_ibo = 0;
39 mapping->num_tex = 0;
40 mapping->tex_base = num_textures;
44 ir3_ssbo_to_ibo(struct ir3_ibo_mapping *mapping, unsigned ssbo)
46 if (mapping->ssbo_to_ibo[ssbo] == IBO_INVALID) {
47 unsigned ibo = mapping->num_ibo++;
48 mapping->ssbo_to_ibo[ssbo] = ibo;
49 mapping->ibo_to_image[ibo] = IBO_SSBO | ssbo;
51 return mapping->ssbo_to_ibo[ssbo];
55 ir3_ssbo_to_tex(struct ir3_ibo_mapping *mapping, unsigned ssbo)
57 if (mapping->ssbo_to_tex[ssbo] == IBO_INVALID) {
58 unsigned tex = mapping->num_tex++;
59 mapping->ssbo_to_tex[ssbo] = tex;
60 mapping->tex_to_image[tex] = IBO_SSBO | ssbo;
62 return mapping->ssbo_to_tex[ssbo] + mapping->tex_base;
66 ir3_image_to_ibo(struct ir3_ibo_mapping *mapping, unsigned image)
68 if (mapping->image_to_ibo[image] == IBO_INVALID) {
69 unsigned ibo = mapping->num_ibo++;
70 mapping->image_to_ibo[image] = ibo;
71 mapping->ibo_to_image[ibo] = image;
73 return mapping->image_to_ibo[image];
77 ir3_image_to_tex(struct ir3_ibo_mapping *mapping, unsigned image)
79 if (mapping->image_to_tex[image] == IBO_INVALID) {
80 unsigned tex = mapping->num_tex++;
81 mapping->image_to_tex[image] = tex;
82 mapping->tex_to_image[tex] = image;
84 return mapping->image_to_tex[image] + mapping->tex_base;