X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_extensions.c;h=7d77ed4151d860d578ec7f9296b1b9c35b0f7f3f;hb=e5339fe4a47c242693962c9f90bbab8b74935cba;hp=229319af690766a9f90c49df3c051bce131c10ec;hpb=babf7357d24b88a548f50aebca74c6ffd8f81d52;p=mesa.git diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 229319af690..7d77ed4151d 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -28,7 +28,7 @@ #include "compiler/nir/nir.h" -#include "main/imports.h" +#include "util/imports.h" #include "main/context.h" #include "main/macros.h" #include "main/spirv_extensions.h" @@ -335,7 +335,15 @@ void st_init_limits(struct pipe_screen *screen, if (sh == MESA_SHADER_VERTEX) { if (screen->get_param(screen, PIPE_CAP_VIEWPORT_TRANSFORM_LOWERED)) options->LowerBuiltinVariablesXfb |= VARYING_BIT_POS; + if (screen->get_param(screen, PIPE_CAP_PSIZ_CLAMPED)) + options->LowerBuiltinVariablesXfb |= VARYING_BIT_PSIZ; } + + /* Initialize lower precision shader compiler option based on + * the value of PIPE_SHADER_CAP_FP16. + */ + options->LowerPrecision = + screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16); } c->MaxUserAssignableUniformLocations = @@ -567,6 +575,12 @@ void st_init_limits(struct pipe_screen *screen, c->VertexBufferOffsetIsInt32 = screen->get_param(screen, PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET); + + c->MultiDrawWithUserIndices = + screen->get_param(screen, PIPE_CAP_DRAW_INFO_START_WITH_USER_INDICES); + + c->glBeginEndBufferSize = + screen->get_param(screen, PIPE_CAP_GL_BEGIN_END_BUFFER_SIZE); } @@ -1704,4 +1718,6 @@ void st_init_extensions(struct pipe_screen *screen, consts->SpirVExtensions = CALLOC_STRUCT(spirv_supported_extensions); _mesa_fill_supported_spirv_extensions(consts->SpirVExtensions, spirv_caps); } + + consts->AllowDrawOutOfOrder = options->allow_draw_out_of_order; }