mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 08:50:13 +01:00
g3dvl: add scissor setting
This commit is contained in:
parent
c2e47191d7
commit
c621c100b2
4 changed files with 13 additions and 0 deletions
|
|
@ -473,8 +473,12 @@ void vl_compositor_render(struct vl_compositor *compositor,
|
|||
compositor->viewport.translate[2] = 0;
|
||||
compositor->viewport.translate[3] = 0;
|
||||
|
||||
compositor->scissor.maxx = compositor->fb_state.width;
|
||||
compositor->scissor.maxy = compositor->fb_state.height;
|
||||
|
||||
compositor->pipe->set_framebuffer_state(compositor->pipe, &compositor->fb_state);
|
||||
compositor->pipe->set_viewport_state(compositor->pipe, &compositor->viewport);
|
||||
compositor->pipe->set_scissor_state(compositor->pipe, &compositor->scissor);
|
||||
compositor->pipe->bind_sampler_states(compositor->pipe, 1, &compositor->sampler);
|
||||
compositor->pipe->set_sampler_textures(compositor->pipe, 1, &src_surface);
|
||||
compositor->pipe->bind_vs_state(compositor->pipe, compositor->vertex_shader);
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ struct vl_compositor
|
|||
void *vertex_shader;
|
||||
void *fragment_shader;
|
||||
struct pipe_viewport_state viewport;
|
||||
struct pipe_scissor_state scissor;
|
||||
struct pipe_vertex_buffer vertex_bufs[2];
|
||||
struct pipe_vertex_element vertex_elems[2];
|
||||
struct pipe_constant_buffer vs_const_buf, fs_const_buf;
|
||||
|
|
|
|||
|
|
@ -721,6 +721,11 @@ init_pipe_state(struct vl_mpeg12_mc_renderer *r)
|
|||
r->viewport.translate[2] = 0;
|
||||
r->viewport.translate[3] = 0;
|
||||
|
||||
r->scissor.maxx = r->pot_buffers ?
|
||||
util_next_power_of_two(r->picture_width) : r->picture_width;
|
||||
r->scissor.maxy = r->pot_buffers ?
|
||||
util_next_power_of_two(r->picture_height) : r->picture_height;
|
||||
|
||||
r->fb_state.width = r->pot_buffers ?
|
||||
util_next_power_of_two(r->picture_width) : r->picture_width;
|
||||
r->fb_state.height = r->pot_buffers ?
|
||||
|
|
@ -1270,6 +1275,7 @@ flush(struct vl_mpeg12_mc_renderer *r)
|
|||
|
||||
r->pipe->set_framebuffer_state(r->pipe, &r->fb_state);
|
||||
r->pipe->set_viewport_state(r->pipe, &r->viewport);
|
||||
r->pipe->set_scissor_state(r->pipe, &r->scissor);
|
||||
|
||||
vs_consts = pipe_buffer_map
|
||||
(
|
||||
|
|
@ -1386,6 +1392,7 @@ flush(struct vl_mpeg12_mc_renderer *r)
|
|||
vb_start += num_macroblocks[MACROBLOCK_TYPE_BI_FIELD_PRED] * 24;
|
||||
}
|
||||
|
||||
r->pipe->clear(r->pipe, 1, a, 1, 0);
|
||||
r->pipe->flush(r->pipe, PIPE_FLUSH_RENDER_CACHE, r->fence);
|
||||
pipe_surface_reference(&r->fb_state.cbufs[0], NULL);
|
||||
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ struct vl_mpeg12_mc_renderer
|
|||
unsigned macroblocks_per_batch;
|
||||
|
||||
struct pipe_viewport_state viewport;
|
||||
struct pipe_scissor_state scissor;
|
||||
struct pipe_constant_buffer vs_const_buf;
|
||||
struct pipe_constant_buffer fs_const_buf;
|
||||
struct pipe_framebuffer_state fb_state;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue