Home | History | Annotate | Download | only in svga

Lines Matching refs:svga

51  * Extra space for svga-specific VS/PS constants (such as texcoord
66 svga_get_extra_constants_common(struct svga_context *svga,
75 struct pipe_sampler_view *sv = svga->curr.sampler_views[shader][i];
117 svga_get_extra_fs_constants(struct svga_context *svga, float *dest)
119 const struct svga_shader_variant *variant = svga->state.hw_draw.fs;
122 count += svga_get_extra_constants_common(svga, variant,
136 svga_get_prescale_constants(struct svga_context *svga, float **dest)
138 memcpy(*dest, svga->state.hw_clear.prescale.scale, 4 * sizeof(float));
141 memcpy(*dest, svga->state.hw_clear.prescale.translate, 4 * sizeof(float));
151 svga_get_pt_sprite_constants(struct svga_context *svga, float **dest)
153 struct svga_screen *screen = svga_screen(svga->pipe.screen);
156 dst[0] = 1.0 / (svga->curr.viewport.scale[0] * 2);
157 dst[1] = 1.0 / (svga->curr.viewport.scale[1] * 2);
158 dst[2] = svga->curr.rast->pointsize;
169 svga_get_clip_plane_constants(struct svga_context *svga,
176 if (svga_have_vgpu10(svga)) {
181 COPY_4V(*dest, svga->curr.clip.ucp[i]);
198 svga_get_extra_vs_constants(struct svga_context *svga, float *dest)
200 const struct svga_shader_variant *variant = svga->state.hw_draw.vs;
206 count += svga_get_prescale_constants(svga, &dest);
211 dest[0] = 1.0f / svga->curr.viewport.scale[0];
212 dest[1] = 1.0f / svga->curr.viewport.scale[1];
213 dest[2] = -svga->curr.viewport.translate[0];
214 dest[3] = -svga->curr.viewport.translate[1];
220 count += svga_get_clip_plane_constants(svga, variant, &dest);
223 count += svga_get_extra_constants_common(svga, variant,
236 svga_get_extra_gs_constants(struct svga_context *svga, float *dest)
238 const struct svga_shader_variant *variant = svga->state.hw_draw.gs;
249 count += svga_get_pt_sprite_constants(svga, &dest);
253 count += svga_get_prescale_constants(svga, &dest);
257 count += svga_get_clip_plane_constants(svga, variant, &dest);
260 count += svga_get_extra_constants_common(svga, variant,
274 emit_const(struct svga_context *svga, enum pipe_shader_type shader, unsigned i,
281 assert(!svga_have_vgpu10(svga));
283 if (memcmp(svga->state.hw_draw.cb[shader][i], value,
295 ret = SVGA3D_SetShaderConst( svga->swc,
303 memcpy(svga->state.hw_draw.cb[shader][i], value, 4 * sizeof(float));
305 svga->hud.num_const_updates++;
318 emit_const_range(struct svga_context *svga,
329 assert(!svga_have_vgpu10(svga));
333 debug_printf("svga: too many constants (offset %u + count %u = %u (max = %u))\n",
357 if (memcmp(svga->state.hw_draw.cb[shader][offset + i],
377 memcmp(svga->state.hw_draw.cb[shader][offset + j],
398 if (svga_have_gb_objects(svga)) {
399 ret = SVGA3D_SetGBShaderConstsInline(svga->swc,
407 ret = SVGA3D_SetShaderConsts(svga->swc,
420 memcpy(svga->state.hw_draw.cb[shader][offset + i],
426 svga->hud.num_const_updates++;
442 emit_consts_vgpu9(struct svga_context *svga, enum pipe_shader_type shader)
445 struct svga_screen *ss = svga_screen(svga->pipe.screen);
454 assert(!svga_have_vgpu10(svga));
458 assert(svga->curr.constbufs[shader][1].buffer == NULL);
460 cbuf = &svga->curr.constbufs[shader][0];
462 if (svga->curr.constbufs[shader][0].buffer) {
465 pipe_buffer_map(&svga->pipe, svga->curr.constbufs[shader][0].buffer,
480 ret = emit_const_range( svga, shader, offset, count, data );
484 ret = emit_const( svga, shader, offset + i, data[i] );
491 pipe_buffer_unmap(&svga->pipe, transfer);
507 variant = svga->state.hw_draw.vs;
508 count = svga_get_extra_vs_constants(svga, (float *) extras);
511 variant = svga->state.hw_draw.fs;
512 count = svga_get_extra_fs_constants(svga, (float *) extras);
525 ret = emit_const_range(svga, shader, offset, count,
530 ret = emit_const(svga, shader, offset + i, extras[i]);
544 emit_constbuf_vgpu10(struct svga_context *svga, enum pipe_shader_type shader)
563 cbuf = &svga->curr.constbufs[shader][0];
567 variant = svga->state.hw_draw.vs;
568 extra_count = svga_get_extra_vs_constants(svga, (float *) extras);
571 variant = svga->state.hw_draw.fs;
572 extra_count = svga_get_extra_fs_constants(svga, (float *) extras);
575 variant = svga->state.hw_draw.gs;
576 extra_count = svga_get_extra_gs_constants(svga, (float *) extras);
600 src_map = pipe_buffer_map_range(&svga->pipe, cbuf->buffer,
631 u_upload_alloc(svga->const0_upload, 0, alloc_buf_size,
636 pipe_buffer_unmap(&svga->pipe, src_transfer);
642 pipe_buffer_unmap(&svga->pipe, src_transfer);
651 if (svga->state.hw_draw.const0_buffer == dst_buffer &&
652 svga->state.hw_draw.const0_handle) {
654 dst_handle = svga->state.hw_draw.const0_handle;
658 u_upload_unmap(svga->const0_upload);
660 dst_handle = svga_buffer_handle(svga, dst_buffer);
667 pipe_resource_reference(&svga->state.hw_draw.const0_buffer, dst_buffer);
668 svga->state.hw_draw.const0_handle = dst_handle;
673 ret = SVGA3D_vgpu10_SetSingleConstantBuffer(svga->swc,
690 pipe_resource_reference(&svga->state.hw_draw.constbuf[shader], dst_buffer);
692 svga->state.hw_draw.default_constbuf_size[shader] = new_buf_size;
696 svga->hud.num_const_buf_updates++;
703 emit_consts_vgpu10(struct svga_context *svga, enum pipe_shader_type shader)
710 ret = emit_constbuf_vgpu10(svga, shader);
715 enabled_constbufs = svga->state.hw_draw.enabled_constbufs[shader] | 1u;
718 dirty_constbufs = svga->state.dirty_constbufs[shader] & ~1u;
722 unsigned offset = svga->curr.constbufs[shader][index].buffer_offset;
723 unsigned size = svga->curr.constbufs[shader][index].buffer_size;
725 svga_buffer(svga->curr.constbufs[shader][index].buffer);
729 handle = svga_buffer_handle(svga, &buffer->b.b);
758 ret = SVGA3D_vgpu10_SetSingleConstantBuffer(svga->swc,
767 svga->hud.num_const_buf_updates++;
770 svga->state.hw_draw.enabled_constbufs[shader] = enabled_constbufs;
771 svga->state.dirty_constbufs[shader] = 0;
777 emit_fs_consts(struct svga_context *svga, unsigned dirty)
779 const struct svga_shader_variant *variant = svga->state.hw_draw.fs;
789 if (svga_have_vgpu10(svga)) {
790 ret = emit_consts_vgpu10(svga, PIPE_SHADER_FRAGMENT);
793 ret = emit_consts_vgpu9(svga, PIPE_SHADER_FRAGMENT);
812 emit_vs_consts(struct svga_context *svga, unsigned dirty)
814 const struct svga_shader_variant *variant = svga->state.hw_draw.vs;
824 if (svga_have_vgpu10(svga)) {
825 ret = emit_consts_vgpu10(svga, PIPE_SHADER_VERTEX);
828 ret = emit_consts_vgpu9(svga, PIPE_SHADER_VERTEX);
846 emit_gs_consts(struct svga_context *svga, unsigned dirty)
848 const struct svga_shader_variant *variant = svga->state.hw_draw.gs;
858 if (svga_have_vgpu10(svga)) {
867 ret = emit_consts_vgpu10(svga, PIPE_SHADER_GEOMETRY);