- /* first stage */
- idct->pipe->set_framebuffer_state(idct->pipe, &idct->fb_state[0]);
- idct->pipe->set_viewport_state(idct->pipe, &idct->viewport[0]);
-
- idct->pipe->set_vertex_buffers(idct->pipe, 2, idct->vertex_bufs.all);
- idct->pipe->bind_vertex_elements_state(idct->pipe, idct->vertex_elems_state);
- idct->pipe->set_fragment_sampler_views(idct->pipe, 2, idct->sampler_views.stage[0]);
- idct->pipe->bind_fragment_sampler_states(idct->pipe, 2, idct->samplers.stage[0]);
- idct->pipe->bind_vs_state(idct->pipe, idct->matrix_vs);
- idct->pipe->bind_fs_state(idct->pipe, idct->matrix_fs);
-
- util_draw_arrays(idct->pipe, PIPE_PRIM_QUADS, 0, idct->num_blocks * 4);
-
- /* second stage */
- idct->pipe->set_framebuffer_state(idct->pipe, &idct->fb_state[1]);
- idct->pipe->set_viewport_state(idct->pipe, &idct->viewport[1]);
-
- idct->pipe->set_vertex_buffers(idct->pipe, 2, idct->vertex_bufs.all);
- idct->pipe->bind_vertex_elements_state(idct->pipe, idct->vertex_elems_state);
- idct->pipe->set_fragment_sampler_views(idct->pipe, 2, idct->sampler_views.stage[1]);
- idct->pipe->bind_fragment_sampler_states(idct->pipe, 2, idct->samplers.stage[1]);
- idct->pipe->bind_vs_state(idct->pipe, idct->transpose_vs);
- idct->pipe->bind_fs_state(idct->pipe, idct->transpose_fs);
-
- util_draw_arrays(idct->pipe, PIPE_PRIM_QUADS, 0, idct->num_blocks * 4);
- }
-
- if(idct->num_empty_blocks > 0) {
-
- /* empty block handling */
- idct->pipe->set_framebuffer_state(idct->pipe, &idct->fb_state[1]);
- idct->pipe->set_viewport_state(idct->pipe, &idct->viewport[1]);
-
- idct->pipe->set_vertex_buffers(idct->pipe, 2, idct->vertex_bufs.all);
- idct->pipe->bind_vertex_elements_state(idct->pipe, idct->vertex_elems_state);
- idct->pipe->bind_vs_state(idct->pipe, idct->eb_vs);
- idct->pipe->bind_fs_state(idct->pipe, idct->eb_fs);