Lines Matching defs:kgem
65 static void gen6_update_vertex_buffer(struct kgem *kgem, const uint32_t *data)
67 uint32_t reloc = sizeof(uint32_t) * (&data[1] - kgem->batch);
72 for (i = 0; i < kgem->nreloc; i++)
73 if (kgem->reloc[i].offset == reloc)
75 assert(i < kgem->nreloc);
76 reloc = kgem->reloc[i].target_handle;
79 base = kgem->batch;
81 list_for_each_entry(bo, &kgem->next_request->buffers, request)
84 assert(&bo->request != &kgem->next_request->buffers);
85 base = kgem_bo_map__debug(kgem, bo);
88 base = (char *)base + kgem->reloc[i].delta;
96 static void gen6_update_dynamic_buffer(struct kgem *kgem, const uint32_t offset)
103 if ((kgem->batch[offset] & 1) == 0)
106 for (i = 0; i < kgem->nreloc; i++)
107 if (kgem->reloc[i].offset == reloc)
109 if(i < kgem->nreloc) {
110 reloc = kgem->reloc[i].target_handle;
113 base = kgem->batch;
115 list_for_each_entry(bo, &kgem->next_request->buffers, request)
118 assert(&bo->request != &kgem->next_request->buffers);
119 base = kgem_bo_map__debug(kgem, bo);
121 ptr = (char *)base + (kgem->reloc[i].delta & ~1);
139 static void gen6_update_vertex_elements(struct kgem *kgem, int id, const uint32_t *data)
151 static void gen6_update_sf_state(struct kgem *kgem, uint32_t *data)
260 static void indirect_vertex_out(struct kgem *kgem, uint32_t v)
280 static void primitive_out(struct kgem *kgem, uint32_t *data)
289 indirect_vertex_out(kgem, v);
294 static void finish_state(struct kgem *kgem)
422 get_reloc(struct kgem *kgem,
431 uint32_t handle = sizeof(uint32_t) * (reloc - kgem->batch);
435 for (i = 0; i < kgem->nreloc; i++)
436 if (kgem->reloc[i].offset == handle)
438 assert(i < kgem->nreloc);
439 handle = kgem->reloc[i].target_handle;
440 delta = kgem->reloc[i].delta;
443 base = kgem->batch;
445 list_for_each_entry(bo, &kgem->next_request->buffers, request)
448 assert(&bo->request != &kgem->next_request->buffers);
449 base = kgem_bo_map__debug(kgem, bo);
481 gen6_decode_sampler_state(struct kgem *kgem, const uint32_t *reloc)
488 ss = get_reloc(kgem, state.dynamic_state.ptr, reloc, &r);
569 gen6_decode_blend(struct kgem *kgem, const uint32_t *reloc)
576 blend = get_reloc(kgem, state.dynamic_state.ptr, reloc, &r);
587 int kgem_gen6_decode_3d(struct kgem *kgem, uint32_t offset)
634 uint32_t *data = kgem->batch + offset;
646 if (kgem->gen >= 060) {
660 gen6_update_dynamic_buffer(kgem, offset + 3);
661 } else if (kgem->gen >= 050) {
677 if (kgem->gen >= 060) {
689 } else if (kgem->gen >= 040) {
713 gen6_decode_sampler_state(kgem, &data[3]);
721 gen6_update_vertex_buffer(kgem, data + i);
739 gen6_update_vertex_elements(kgem, (i - 1)/2, data + i);
780 gen6_decode_blend(kgem, data+1);
871 gen6_update_sf_state(kgem, data);
1047 primitive_out(kgem, data);
1072 void kgem_gen6_finish_state(struct kgem *kgem)
1074 finish_state(kgem);