Lines Matching refs:attrib
43 typedef void (*emit_func)(const void *attrib, void *ptr);
76 } attrib[TRANSLATE_MAX_ATTRIBS];
98 emit_##NAME(const void *attrib, void *ptr) \
101 SRCTYPE *in = (SRCTYPE *)attrib; \
241 emit_A8R8G8B8_UNORM(const void *attrib, void *ptr)
243 float *in = (float *)attrib;
252 emit_B8G8R8A8_UNORM(const void *attrib, void *ptr)
254 float *in = (float *)attrib;
263 emit_B10G10R10A2_UNORM(const void *attrib, void *ptr)
271 *(uint32_t *)attrib = util_le32_to_cpu(value);
275 emit_B10G10R10A2_USCALED(const void *attrib, void *ptr)
283 *(uint32_t *)attrib = util_le32_to_cpu(value);
287 emit_B10G10R10A2_SNORM(const void *attrib, void *ptr)
295 *(uint32_t *)attrib = util_le32_to_cpu(value);
299 emit_B10G10R10A2_SSCALED(const void *attrib, void *ptr)
307 *(uint32_t *)attrib = util_le32_to_cpu(value);
311 emit_R10G10B10A2_UNORM(const void *attrib, void *ptr)
319 *(uint32_t *)attrib = util_le32_to_cpu(value);
323 emit_R10G10B10A2_USCALED(const void *attrib, void *ptr)
331 *(uint32_t *)attrib = util_le32_to_cpu(value);
335 emit_R10G10B10A2_SNORM(const void *attrib, void *ptr)
343 *(uint32_t *)attrib = util_le32_to_cpu(value);
347 emit_R10G10B10A2_SSCALED(const void *attrib, void *ptr)
355 *(uint32_t *)attrib = util_le32_to_cpu(value);
359 emit_NULL(const void *attrib, void *ptr)
599 uint8_t *dst = (uint8_t *)vert + tg->attrib[attr].output_offset;
601 if (tg->attrib[attr].type == TRANSLATE_ELEMENT_NORMAL) {
606 if (tg->attrib[attr].instance_divisor) {
608 index += (instance_id / tg->attrib[attr].instance_divisor);
617 index = MIN2(index, tg->attrib[attr].max_index);
620 src = tg->attrib[attr].input_ptr +
621 (ptrdiff_t)tg->attrib[attr].input_stride * index;
623 copy_size = tg->attrib[attr].copy_size;
627 tg->attrib[attr].fetch(data, src, 1);
633 tg->attrib[attr].input_ptr,
634 tg->attrib[attr].input_stride,
638 tg->attrib[attr].emit(data, dst);
641 if (likely(tg->attrib[attr].copy_size >= 0)) {
645 tg->attrib[attr].emit(data, dst);
739 if (tg->attrib[i].buffer == buf) {
740 tg->attrib[i].input_ptr = ((const uint8_t *)ptr +
741 tg->attrib[i].input_offset);
742 tg->attrib[i].input_stride = stride;
743 tg->attrib[i].max_index = max_index;
803 tg->attrib[i].type = key->element[i].type;
815 tg->attrib[i].fetch = unpack->unpack_rgba;
816 tg->attrib[i].buffer = key->element[i].input_buffer;
817 tg->attrib[i].input_offset = key->element[i].input_offset;
818 tg->attrib[i].instance_divisor = key->element[i].instance_divisor;
820 tg->attrib[i].output_offset = key->element[i].output_offset;
822 tg->attrib[i].copy_size = -1;
823 if (tg->attrib[i].type == TRANSLATE_ELEMENT_INSTANCE_ID) {
826 tg->attrib[i].copy_size = 4;
832 tg->attrib[i].copy_size = format_desc->block.bits >> 3;
835 if (tg->attrib[i].copy_size < 0)
836 tg->attrib[i].emit = get_emit_func(key->element[i].output_format);
838 tg->attrib[i].emit = NULL;