st/nine: Use nine_context for resource_copy_region
Use nine_context wrapper for resource_copy_region. Enables to offload it with CSMT. Signed-off-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
parent
c8913a06b4
commit
fef23f6712
|
@ -1549,7 +1549,6 @@ NineDevice9_StretchRect( struct NineDevice9 *This,
|
||||||
D3DTEXTUREFILTERTYPE Filter )
|
D3DTEXTUREFILTERTYPE Filter )
|
||||||
{
|
{
|
||||||
struct pipe_screen *screen = This->screen;
|
struct pipe_screen *screen = This->screen;
|
||||||
struct pipe_context *pipe;
|
|
||||||
struct NineSurface9 *dst = NineSurface9(pDestSurface);
|
struct NineSurface9 *dst = NineSurface9(pDestSurface);
|
||||||
struct NineSurface9 *src = NineSurface9(pSourceSurface);
|
struct NineSurface9 *src = NineSurface9(pSourceSurface);
|
||||||
struct pipe_resource *dst_res = NineSurface9_GetResource(dst);
|
struct pipe_resource *dst_res = NineSurface9_GetResource(dst);
|
||||||
|
@ -1732,10 +1731,9 @@ NineDevice9_StretchRect( struct NineDevice9 *This,
|
||||||
blit.src.box.y + blit.src.box.height <= src->desc.Height);
|
blit.src.box.y + blit.src.box.height <= src->desc.Height);
|
||||||
/* Or drivers might crash ... */
|
/* Or drivers might crash ... */
|
||||||
DBG("Using resource_copy_region.\n");
|
DBG("Using resource_copy_region.\n");
|
||||||
pipe = NineDevice9_GetPipe(This);
|
nine_context_resource_copy_region(This,
|
||||||
pipe->resource_copy_region(pipe,
|
|
||||||
blit.dst.resource, blit.dst.level,
|
blit.dst.resource, blit.dst.level,
|
||||||
blit.dst.box.x, blit.dst.box.y, blit.dst.box.z,
|
&blit.dst.box,
|
||||||
blit.src.resource, blit.src.level,
|
blit.src.resource, blit.src.level,
|
||||||
&blit.src.box);
|
&blit.src.box);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2583,6 +2583,23 @@ CSMT_ITEM_NO_WAIT(nine_context_draw_indexed_primitive_from_vtxbuf_idxbuf,
|
||||||
context->pipe->draw_vbo(context->pipe, &info);
|
context->pipe->draw_vbo(context->pipe, &info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSMT_ITEM_NO_WAIT(nine_context_resource_copy_region,
|
||||||
|
ARG_BIND_RES(struct pipe_resource, dst_res),
|
||||||
|
ARG_VAL(unsigned, dst_level),
|
||||||
|
ARG_COPY_REF(struct pipe_box, dst_box),
|
||||||
|
ARG_BIND_RES(struct pipe_resource, src_res),
|
||||||
|
ARG_VAL(unsigned, src_level),
|
||||||
|
ARG_COPY_REF(struct pipe_box, src_box))
|
||||||
|
{
|
||||||
|
struct nine_context *context = &device->context;
|
||||||
|
|
||||||
|
context->pipe->resource_copy_region(context->pipe,
|
||||||
|
dst_res, dst_level,
|
||||||
|
dst_box->x, dst_box->y, dst_box->z,
|
||||||
|
src_res, src_level,
|
||||||
|
src_box);
|
||||||
|
}
|
||||||
|
|
||||||
CSMT_ITEM_NO_WAIT(nine_context_blit,
|
CSMT_ITEM_NO_WAIT(nine_context_blit,
|
||||||
ARG_BIND_BLIT(struct pipe_blit_info, blit))
|
ARG_BIND_BLIT(struct pipe_blit_info, blit))
|
||||||
{
|
{
|
||||||
|
|
|
@ -517,6 +517,15 @@ nine_context_draw_indexed_primitive_from_vtxbuf_idxbuf(struct NineDevice9 *devic
|
||||||
struct pipe_vertex_buffer *vbuf,
|
struct pipe_vertex_buffer *vbuf,
|
||||||
struct pipe_index_buffer *ibuf);
|
struct pipe_index_buffer *ibuf);
|
||||||
|
|
||||||
|
void
|
||||||
|
nine_context_resource_copy_region(struct NineDevice9 *device,
|
||||||
|
struct pipe_resource* dst_res,
|
||||||
|
unsigned dst_level,
|
||||||
|
const struct pipe_box *dst_box,
|
||||||
|
struct pipe_resource* src_res,
|
||||||
|
unsigned src_level,
|
||||||
|
const struct pipe_box *src_box);
|
||||||
|
|
||||||
void
|
void
|
||||||
nine_context_blit(struct NineDevice9 *device,
|
nine_context_blit(struct NineDevice9 *device,
|
||||||
struct pipe_blit_info *blit);
|
struct pipe_blit_info *blit);
|
||||||
|
|
Loading…
Reference in New Issue