Lines Matching refs:buffer

590 init_source(struct vl_idct *idct, struct vl_idct_buffer *buffer)
595 assert(idct && buffer);
597 tex = buffer->sampler_views.individual.source->texture;
599 buffer->fb_state_mismatch.width = tex->width0;
600 buffer->fb_state_mismatch.height = tex->height0;
601 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.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X;
613 buffer->viewport_mismatch.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y;
614 buffer->viewport_mismatch.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z;
615 buffer->viewport_mismatch.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W;
621 cleanup_source(struct vl_idct_buffer *buffer)
623 assert(buffer);
625 pipe_surface_reference(&buffer->fb_state_mismatch.cbufs[0], NULL);
627 pipe_sampler_view_reference(&buffer->sampler_views.individual.source, NULL);
631 init_intermediate(struct vl_idct *idct, struct vl_idct_buffer *buffer)
637 assert(idct && buffer);
639 tex = buffer->sampler_views.individual.intermediate->texture;
641 buffer->fb_state.width = tex->width0;
642 buffer->fb_state.height = tex->height0;
643 buffer->fb_state.nr_cbufs = idct->nr_of_render_targets;
649 buffer->fb_state.cbufs[i] = idct->pipe->create_surface(
652 if (!buffer->fb_state.cbufs[i])
656 buffer->viewport.scale[0] = tex->width0;
657 buffer->viewport.scale[1] = tex->height0;
658 buffer->viewport.scale[2] = 1;
659 buffer->viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X;
660 buffer->viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y;
661 buffer->viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z;
662 buffer->viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W;
668 pipe_surface_reference(&buffer->fb_state.cbufs[i], NULL);
674 cleanup_intermediate(struct vl_idct_buffer *buffer)
678 assert(buffer);
681 pipe_surface_reference(&buffer->fb_state.cbufs[i], NULL);
683 pipe_sampler_view_reference(&buffer->sampler_views.individual.intermediate, NULL);
792 vl_idct_init_buffer(struct vl_idct *idct, struct vl_idct_buffer *buffer,
796 assert(buffer && idct);
799 memset(buffer, 0, sizeof(struct vl_idct_buffer));
801 pipe_sampler_view_reference(&buffer->sampler_views.individual.matrix, idct->matrix);
802 pipe_sampler_view_reference(&buffer->sampler_views.individual.source, source);
803 pipe_sampler_view_reference(&buffer->sampler_views.individual.transpose, idct->transpose);
804 pipe_sampler_view_reference(&buffer->sampler_views.individual.intermediate, intermediate);
806 if (!init_source(idct, buffer))
809 if (!init_intermediate(idct, buffer))
816 vl_idct_cleanup_buffer(struct vl_idct_buffer *buffer)
818 assert(buffer);
820 cleanup_source(buffer);
821 cleanup_intermediate(buffer);
823 pipe_sampler_view_reference(&buffer->sampler_views.individual.matrix, NULL);
824 pipe_sampler_view_reference(&buffer->sampler_views.individual.transpose, NULL);
828 vl_idct_flush(struct vl_idct *idct, struct vl_idct_buffer *buffer, unsigned num_instances)
830 assert(buffer);
839 false, buffer->sampler_views.stage[0]);
842 idct->pipe->set_framebuffer_state(idct->pipe, &buffer->fb_state_mismatch);
843 idct->pipe->set_viewport_states(idct->pipe, 0, 1, &buffer->viewport_mismatch);
849 idct->pipe->set_framebuffer_state(idct->pipe, &buffer->fb_state);
850 idct->pipe->set_viewport_states(idct->pipe, 0, 1, &buffer->viewport);
857 vl_idct_prepare_stage2(struct vl_idct *idct, struct vl_idct_buffer *buffer)
859 assert(buffer);
866 0, 2, 0, false, buffer->sampler_views.stage[1]);