X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Ffreedreno%2Fa3xx%2Ffd3_screen.c;h=1c059104b59e26c47abb6115b88ef81f60ddf8fb;hb=c6fab232c85d04e8de80ce4e8753fb1516d69fcd;hp=366f07ef34b75d2a81cabd57e276e380fe1fa827;hpb=ea8b55b49f2a2dd155fc0acb2fdd92795d5c548f;p=mesa.git diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_screen.c b/src/gallium/drivers/freedreno/a3xx/fd3_screen.c index 366f07ef34b..1c059104b59 100644 --- a/src/gallium/drivers/freedreno/a3xx/fd3_screen.c +++ b/src/gallium/drivers/freedreno/a3xx/fd3_screen.c @@ -1,5 +1,3 @@ -/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ - /* * Copyright (C) 2013 Rob Clark * @@ -32,13 +30,17 @@ #include "fd3_screen.h" #include "fd3_context.h" #include "fd3_format.h" -#include "ir3_compiler.h" +#include "fd3_emit.h" +#include "fd3_resource.h" + +#include "ir3/ir3_compiler.h" -static boolean +static bool fd3_screen_is_format_supported(struct pipe_screen *pscreen, enum pipe_format format, enum pipe_texture_target target, unsigned sample_count, + unsigned storage_sample_count, unsigned usage) { unsigned retval = 0; @@ -47,9 +49,12 @@ fd3_screen_is_format_supported(struct pipe_screen *pscreen, (sample_count > 1)) { /* TODO add MSAA */ DBG("not supported: format=%s, target=%d, sample_count=%d, usage=%x", util_format_name(format), target, sample_count, usage); - return FALSE; + return false; } + if (MAX2(1, sample_count) != MAX2(1, storage_sample_count)) + return false; + if ((usage & PIPE_BIND_VERTEX_BUFFER) && (fd3_pipe2vtx(format) != (enum a3xx_vtx_fmt)~0)) { retval |= PIPE_BIND_VERTEX_BUFFER; @@ -103,4 +108,9 @@ fd3_screen_init(struct pipe_screen *pscreen) screen->compiler = ir3_compiler_create(screen->dev, screen->gpu_id); pscreen->context_create = fd3_context_create; pscreen->is_format_supported = fd3_screen_is_format_supported; + fd3_emit_init_screen(pscreen); + + screen->setup_slices = fd3_setup_slices; + if (fd_mesa_debug & FD_DBG_TTILE) + screen->tile_mode = fd3_tile_mode; }