Переглянути джерело

g3dvl: Preserve previously rendered components for MC output.

Fixes xvmc-softpipe MC entrypoint, amongst others.
tags/mesa-8.0-rc1
Younes Manton 14 роки тому
джерело
коміт
b56daf71d2
1 змінених файлів з 4 додано та 4 видалено
  1. 4
    4
      src/gallium/auxiliary/vl/vl_mc.c

+ 4
- 4
src/gallium/auxiliary/vl/vl_mc.c Переглянути файл

@@ -590,7 +590,7 @@ vl_mc_set_surface(struct vl_mc_buffer *buffer, struct pipe_surface *surface)
}

static void
prepare_pipe_4_rendering(struct vl_mc_buffer *buffer, unsigned mask)
prepare_pipe_4_rendering(struct vl_mc_buffer *buffer, unsigned component, unsigned mask)
{
struct vl_mc *renderer;

@@ -599,7 +599,7 @@ prepare_pipe_4_rendering(struct vl_mc_buffer *buffer, unsigned mask)
renderer = buffer->renderer;
renderer->pipe->bind_rasterizer_state(renderer->pipe, renderer->rs_state);

if (buffer->surface_cleared)
if (buffer->surface_cleared || component > 0)
renderer->pipe->bind_blend_state(renderer->pipe, renderer->blend_add[mask]);
else
renderer->pipe->bind_blend_state(renderer->pipe, renderer->blend_clear[mask]);
@@ -615,7 +615,7 @@ vl_mc_render_ref(struct vl_mc_buffer *buffer, struct pipe_sampler_view *ref)

assert(buffer && ref);

prepare_pipe_4_rendering(buffer, PIPE_MASK_R | PIPE_MASK_G | PIPE_MASK_B);
prepare_pipe_4_rendering(buffer, 0, PIPE_MASK_R | PIPE_MASK_G | PIPE_MASK_B);

renderer = buffer->renderer;

@@ -643,7 +643,7 @@ vl_mc_render_ycbcr(struct vl_mc_buffer *buffer, unsigned component, unsigned num
if (num_instances == 0)
return;

prepare_pipe_4_rendering(buffer, mask);
prepare_pipe_4_rendering(buffer, component, mask);

renderer = buffer->renderer;


Завантаження…
Відмінити
Зберегти