Lines Matching defs:kgem
66 static void gen7_update_vertex_buffer(struct kgem *kgem, const uint32_t *data)
68 uint32_t reloc = sizeof(uint32_t) * (&data[1] - kgem->batch);
73 for (i = 0; i < kgem->nreloc; i++)
74 if (kgem->reloc[i].offset == reloc)
76 assert(i < kgem->nreloc);
77 reloc = kgem->reloc[i].target_handle;
80 base = kgem->batch;
82 list_for_each_entry(bo, &kgem->next_request->buffers, request)
85 assert(&bo->request != &kgem->next_request->buffers);
86 base = kgem_bo_map__debug(kgem, bo);
88 ptr = (char *)base + kgem->reloc[i].delta;
98 static void gen7_update_dynamic_buffer(struct kgem *kgem, const uint32_t offset)
105 if ((kgem->batch[offset] & 1) == 0)
108 for (i = 0; i < kgem->nreloc; i++)
109 if (kgem->reloc[i].offset == reloc)
111 if(i < kgem->nreloc) {
112 reloc = kgem->reloc[i].target_handle;
115 base = kgem->batch;
117 list_for_each_entry(bo, &kgem->next_request->buffers, request)
120 assert(&bo->request != &kgem->next_request->buffers);
121 base = kgem_bo_map__debug(kgem, bo);
123 ptr = (char *)base + (kgem->reloc[i].delta & ~1);
141 static void gen7_update_vertex_elements(struct kgem *kgem, int id, const uint32_t *data)
153 static void gen7_update_sf_state(struct kgem *kgem, uint32_t *data)
262 static void indirect_vertex_out(struct kgem *kgem, uint32_t v)
284 static void primitive_out(struct kgem *kgem, uint32_t *data)
293 indirect_vertex_out(kgem, v);
298 static void finish_state(struct kgem *kgem)
426 get_reloc(struct kgem *kgem,
435 uint32_t handle = sizeof(uint32_t) * (reloc - kgem->batch);
439 for (i = 0; i < kgem->nreloc; i++)
440 if (kgem->reloc[i].offset == handle)
442 assert(i < kgem->nreloc);
443 handle = kgem->reloc[i].target_handle;
444 delta = kgem->reloc[i].delta;
447 base = kgem->batch;
449 list_for_each_entry(bo, &kgem->next_request->buffers, request)
452 assert(&bo->request != &kgem->next_request->buffers);
453 base = kgem_bo_map__debug(kgem, bo);
485 gen7_decode_sampler_state(struct kgem *kgem, const uint32_t *reloc)
492 ss = get_reloc(kgem, state.dynamic_state.ptr, reloc, &r);
563 gen7_decode_blend(struct kgem *kgem, const uint32_t *reloc)
570 blend = get_reloc(kgem, state.dynamic_state.ptr, reloc, &r);
581 int kgem_gen7_decode_3d(struct kgem *kgem, uint32_t offset)
595 uint32_t *data = kgem->batch + offset;
620 gen7_update_dynamic_buffer(kgem, offset + 3);
629 gen7_update_vertex_buffer(kgem, data + i);
647 gen7_update_vertex_elements(kgem, (i - 1)/2, data + i);
685 primitive_out(kgem, data);
713 void kgem_gen7_finish_state(struct kgem *kgem)
715 finish_state(kgem);