Lines Matching refs:so
48 static int render_state_init(struct render_state *so, struct drm_device *dev) in render_state_init() argument
52 so->gen = INTEL_INFO(dev)->gen; in render_state_init()
53 so->rodata = render_state_get_rodata(dev, so->gen); in render_state_init()
54 if (so->rodata == NULL) in render_state_init()
57 if (so->rodata->batch_items * 4 > 4096) in render_state_init()
60 so->obj = i915_gem_alloc_object(dev, 4096); in render_state_init()
61 if (so->obj == NULL) in render_state_init()
64 ret = i915_gem_obj_ggtt_pin(so->obj, 4096, 0); in render_state_init()
68 so->ggtt_offset = i915_gem_obj_ggtt_offset(so->obj); in render_state_init()
72 drm_gem_object_unreference(&so->obj->base); in render_state_init()
76 static int render_state_setup(struct render_state *so) in render_state_setup() argument
78 const struct intel_renderstate_rodata *rodata = so->rodata; in render_state_setup()
84 ret = i915_gem_object_set_to_cpu_domain(so->obj, true); in render_state_setup()
88 page = sg_page(so->obj->pages->sgl); in render_state_setup()
95 u64 r = s + so->ggtt_offset; in render_state_setup()
97 if (so->gen >= 8) { in render_state_setup()
113 ret = i915_gem_object_set_to_gtt_domain(so->obj, false); in render_state_setup()
125 void i915_gem_render_state_fini(struct render_state *so) in i915_gem_render_state_fini() argument
127 i915_gem_object_ggtt_unpin(so->obj); in i915_gem_render_state_fini()
128 drm_gem_object_unreference(&so->obj->base); in i915_gem_render_state_fini()
132 struct render_state *so) in i915_gem_render_state_prepare() argument
139 ret = render_state_init(so, ring->dev); in i915_gem_render_state_prepare()
143 if (so->rodata == NULL) in i915_gem_render_state_prepare()
146 ret = render_state_setup(so); in i915_gem_render_state_prepare()
148 i915_gem_render_state_fini(so); in i915_gem_render_state_prepare()
157 struct render_state so; in i915_gem_render_state_init() local
160 ret = i915_gem_render_state_prepare(ring, &so); in i915_gem_render_state_init()
164 if (so.rodata == NULL) in i915_gem_render_state_init()
168 so.ggtt_offset, in i915_gem_render_state_init()
169 so.rodata->batch_items * 4, in i915_gem_render_state_init()
174 i915_vma_move_to_active(i915_gem_obj_to_ggtt(so.obj), ring); in i915_gem_render_state_init()
176 ret = __i915_add_request(ring, NULL, so.obj); in i915_gem_render_state_init()
179 i915_gem_render_state_fini(&so); in i915_gem_render_state_init()