Lines Matching refs:buffer
589 init_source(struct vl_idct *idct, struct vl_idct_buffer *buffer)
594 assert(idct && buffer);
596 tex = buffer->sampler_views.individual.source->texture;
598 buffer->fb_state_mismatch.width = tex->width0;
599 buffer->fb_state_mismatch.height = tex->height0;
600 buffer->fb_state_mismatch.nr_cbufs = 1;
607 buffer->fb_state_mismatch.cbufs[0] = idct->pipe->create_surface(idct->pipe, tex, &surf_templ);
609 buffer->viewport_mismatch.scale[0] = tex->width0;
610 buffer->viewport_mismatch.scale[1] = tex->height0;
611 buffer->viewport_mismatch.scale[2] = 1;
612 buffer->viewport_mismatch.scale[3] = 1;
618 cleanup_source(struct vl_idct_buffer *buffer)
620 assert(buffer);
622 pipe_surface_reference(&buffer->fb_state_mismatch.cbufs[0], NULL);
624 pipe_sampler_view_reference(&buffer->sampler_views.individual.source, NULL);
628 init_intermediate(struct vl_idct *idct, struct vl_idct_buffer *buffer)
634 assert(idct && buffer);
636 tex = buffer->sampler_views.individual.intermediate->texture;
638 buffer->fb_state.width = tex->width0;
639 buffer->fb_state.height = tex->height0;
640 buffer->fb_state.nr_cbufs = idct->nr_of_render_targets;
647 buffer->fb_state.cbufs[i] = idct->pipe->create_surface(
650 if (!buffer->fb_state.cbufs[i])
654 buffer->viewport.scale[0] = tex->width0;
655 buffer->viewport.scale[1] = tex->height0;
656 buffer->viewport.scale[2] = 1;
657 buffer->viewport.scale[3] = 1;
663 pipe_surface_reference(&buffer->fb_state.cbufs[i], NULL);
669 cleanup_intermediate(struct vl_idct_buffer *buffer)
673 assert(buffer);
676 pipe_surface_reference(&buffer->fb_state.cbufs[i], NULL);
678 pipe_sampler_view_reference(&buffer->sampler_views.individual.intermediate, NULL);
797 vl_idct_init_buffer(struct vl_idct *idct, struct vl_idct_buffer *buffer,
801 assert(buffer && idct);
804 memset(buffer, 0, sizeof(struct vl_idct_buffer));
806 pipe_sampler_view_reference(&buffer->sampler_views.individual.matrix, idct->matrix);
807 pipe_sampler_view_reference(&buffer->sampler_views.individual.source, source);
808 pipe_sampler_view_reference(&buffer->sampler_views.individual.transpose, idct->transpose);
809 pipe_sampler_view_reference(&buffer->sampler_views.individual.intermediate, intermediate);
811 if (!init_source(idct, buffer))
814 if (!init_intermediate(idct, buffer))
821 vl_idct_cleanup_buffer(struct vl_idct_buffer *buffer)
823 assert(buffer);
825 cleanup_source(buffer);
826 cleanup_intermediate(buffer);
828 pipe_sampler_view_reference(&buffer->sampler_views.individual.matrix, NULL);
829 pipe_sampler_view_reference(&buffer->sampler_views.individual.transpose, NULL);
833 vl_idct_flush(struct vl_idct *idct, struct vl_idct_buffer *buffer, unsigned num_instances)
835 assert(buffer);
840 idct->pipe->set_fragment_sampler_views(idct->pipe, 2, buffer->sampler_views.stage[0]);
843 idct->pipe->set_framebuffer_state(idct->pipe, &buffer->fb_state_mismatch);
844 idct->pipe->set_viewport_state(idct->pipe, &buffer->viewport_mismatch);
850 idct->pipe->set_framebuffer_state(idct->pipe, &buffer->fb_state);
851 idct->pipe->set_viewport_state(idct->pipe, &buffer->viewport);
858 vl_idct_prepare_stage2(struct vl_idct *idct, struct vl_idct_buffer *buffer)
860 assert(buffer);
865 idct->pipe->set_fragment_sampler_views(idct->pipe, 2, buffer->sampler_views.stage[1]);