st/nine: Implement nine_context_gen_mipmap

To offload mipmap generation as well.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
Axel Davy
2016-12-03 23:01:56 +01:00
parent 16b6fb65ae
commit 8d3e0f2187
2 changed files with 22 additions and 0 deletions
@@ -44,6 +44,7 @@
#include "util/u_math.h"
#include "util/u_box.h"
#include "util/u_simple_shaders.h"
#include "util/u_gen_mipmap.h"
/* CSMT headers */
#include "nine_queue.h"
@@ -2692,6 +2693,20 @@ CSMT_ITEM_NO_WAIT(nine_context_clear_render_target,
context->pipe->clear_render_target(context->pipe, surf, &rgba, x, y, width, height, false);
}
CSMT_ITEM_NO_WAIT(nine_context_gen_mipmap,
ARG_BIND_RES(struct pipe_resource, res),
ARG_VAL(UINT, base_level),
ARG_VAL(UINT, last_level),
ARG_VAL(UINT, first_layer),
ARG_VAL(UINT, last_layer),
ARG_VAL(UINT, filter))
{
struct nine_context *context = &device->context;
util_gen_mipmap(context->pipe, res, res->format, base_level,
last_level, first_layer, last_layer, filter);
}
CSMT_ITEM_NO_WAIT_WITH_COUNTER(nine_context_range_upload,
ARG_BIND_RES(struct pipe_resource, res),
ARG_VAL(unsigned, offset),
@@ -539,6 +539,13 @@ nine_context_clear_render_target(struct NineDevice9 *device,
UINT width,
UINT height);
void
nine_context_gen_mipmap(struct NineDevice9 *device,
struct pipe_resource *res,
UINT base_level, UINT last_level,
UINT first_layer, UINT last_layer,
UINT filter);
void
nine_context_range_upload(struct NineDevice9 *device,
unsigned *counter,