[Mesa-dev] [PATCH 2/3] noop: set missing functions
Marek Olšák
maraeo at gmail.com
Mon Aug 29 15:49:01 UTC 2016
On Mon, Aug 29, 2016 at 5:43 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Mon, Aug 29, 2016 at 11:29 AM, Marek Olšák <maraeo at gmail.com> wrote:
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> ---
>> src/gallium/drivers/noop/noop_pipe.c | 51 +++++++++++++++++++++++++++++++++++
>> src/gallium/drivers/noop/noop_state.c | 24 +++++++++++++++++
>> 2 files changed, 75 insertions(+)
>>
>> diff --git a/src/gallium/drivers/noop/noop_pipe.c b/src/gallium/drivers/noop/noop_pipe.c
>> index b3e2a3e..25e0c1f 100644
>> --- a/src/gallium/drivers/noop/noop_pipe.c
>> +++ b/src/gallium/drivers/noop/noop_pipe.c
>> @@ -264,42 +264,56 @@ noop_flush_resource(struct pipe_context *ctx,
>> }
>>
>>
>> /*
>> * context
>> */
>> static void noop_flush(struct pipe_context *ctx,
>> struct pipe_fence_handle **fence,
>> unsigned flags)
>> {
>> + if (fence)
>> + *fence = NULL;
>> }
>>
>> static void noop_destroy_context(struct pipe_context *ctx)
>> {
>> FREE(ctx);
>> }
>>
>> +static boolean noop_generate_mipmap(struct pipe_context *ctx,
>> + struct pipe_resource *resource,
>> + enum pipe_format format,
>> + unsigned base_level,
>> + unsigned last_level,
>> + unsigned first_layer,
>> + unsigned last_layer)
>> +{
>> + return true;
>> +}
>> +
>> static struct pipe_context *noop_create_context(struct pipe_screen *screen,
>> void *priv, unsigned flags)
>> {
>> struct pipe_context *ctx = CALLOC_STRUCT(pipe_context);
>>
>> if (!ctx)
>> return NULL;
>> ctx->screen = screen;
>> ctx->priv = priv;
>> ctx->destroy = noop_destroy_context;
>> ctx->flush = noop_flush;
>> ctx->clear = noop_clear;
>> ctx->clear_render_target = noop_clear_render_target;
>> ctx->clear_depth_stencil = noop_clear_depth_stencil;
>> ctx->resource_copy_region = noop_resource_copy_region;
>> + ctx->generate_mipmap = noop_generate_mipmap;
>> ctx->blit = noop_blit;
>> ctx->flush_resource = noop_flush_resource;
>> ctx->create_query = noop_create_query;
>> ctx->destroy_query = noop_destroy_query;
>> ctx->begin_query = noop_begin_query;
>> ctx->end_query = noop_end_query;
>> ctx->get_query_result = noop_get_query_result;
>> ctx->set_active_query_state = noop_set_active_query_state;
>> ctx->transfer_map = noop_transfer_map;
>> ctx->transfer_flush_region = noop_transfer_flush_region;
>> @@ -352,20 +366,30 @@ static float noop_get_paramf(struct pipe_screen* pscreen,
>> return screen->get_paramf(screen, param);
>> }
>>
>> static int noop_get_shader_param(struct pipe_screen* pscreen, unsigned shader, enum pipe_shader_cap param)
>> {
>> struct pipe_screen *screen = ((struct noop_pipe_screen*)pscreen)->oscreen;
>>
>> return screen->get_shader_param(screen, shader, param);
>> }
>>
>> +static int noop_get_compute_param(struct pipe_screen *pscreen,
>> + enum pipe_shader_ir ir_type,
>> + enum pipe_compute_cap param,
>> + void *ret)
>> +{
>> + struct pipe_screen *screen = ((struct noop_pipe_screen*)pscreen)->oscreen;
>> +
>> + return screen->get_compute_param(screen, ir_type, param, ret);
>> +}
>> +
>> static boolean noop_is_format_supported(struct pipe_screen* pscreen,
>> enum pipe_format format,
>> enum pipe_texture_target target,
>> unsigned sample_count,
>> unsigned usage)
>> {
>> struct pipe_screen *screen = ((struct noop_pipe_screen*)pscreen)->oscreen;
>>
>> return screen->is_format_supported(screen, format, target, sample_count, usage);
>> }
>> @@ -377,20 +401,43 @@ static uint64_t noop_get_timestamp(struct pipe_screen *pscreen)
>>
>> static void noop_destroy_screen(struct pipe_screen *screen)
>> {
>> struct noop_pipe_screen *noop_screen = (struct noop_pipe_screen*)screen;
>> struct pipe_screen *oscreen = noop_screen->oscreen;
>>
>> oscreen->destroy(oscreen);
>> FREE(screen);
>> }
>>
>> +static void noop_fence_reference(struct pipe_screen *screen,
>> + struct pipe_fence_handle **ptr,
>> + struct pipe_fence_handle *fence)
>> +{
>> +}
>> +
>> +static boolean noop_fence_finish(struct pipe_screen *screen,
>> + struct pipe_context *ctx,
>> + struct pipe_fence_handle *fence,
>> + uint64_t timeout)
>> +{
>> + return true;
>> +}
>> +
>> +static void noop_query_memory_info(struct pipe_screen *pscreen,
>> + struct pipe_memory_info *info)
>> +{
>> + struct noop_pipe_screen *noop_screen = (struct noop_pipe_screen*)pscreen;
>> + struct pipe_screen *screen = noop_screen->oscreen;
>> +
>> + screen->query_memory_info(screen, info);
>
> That could end up taking a while to complete...
I have no idea what you're talking about. BTW I did test all of these
patches quite extensively.
Marek
More information about the mesa-dev
mailing list