mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
mesa/main: prefer R8-textures instead of A8 for glBitmap in display lists
This allows drivers to communicate that they prefer R8 textures rather than A8 for glBitmap usage. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
f92226931b
commit
bbdbb02a5f
3 changed files with 16 additions and 3 deletions
|
|
@ -941,9 +941,14 @@ build_bitmap_atlas(struct gl_context *ctx, struct gl_bitmap_atlas *atlas,
|
||||||
goto out_of_memory;
|
goto out_of_memory;
|
||||||
}
|
}
|
||||||
|
|
||||||
_mesa_init_teximage_fields(ctx, atlas->texImage,
|
if (ctx->Const.BitmapUsesRed)
|
||||||
atlas->texWidth, atlas->texHeight, 1, 0,
|
_mesa_init_teximage_fields(ctx, atlas->texImage,
|
||||||
GL_ALPHA, MESA_FORMAT_A_UNORM8);
|
atlas->texWidth, atlas->texHeight, 1, 0,
|
||||||
|
GL_RED, MESA_FORMAT_R_UNORM8);
|
||||||
|
else
|
||||||
|
_mesa_init_teximage_fields(ctx, atlas->texImage,
|
||||||
|
atlas->texWidth, atlas->texHeight, 1, 0,
|
||||||
|
GL_ALPHA, MESA_FORMAT_A_UNORM8);
|
||||||
|
|
||||||
/* alloc image storage */
|
/* alloc image storage */
|
||||||
if (!ctx->Driver.AllocTextureImageBuffer(ctx, atlas->texImage)) {
|
if (!ctx->Driver.AllocTextureImageBuffer(ctx, atlas->texImage)) {
|
||||||
|
|
|
||||||
|
|
@ -4130,6 +4130,9 @@ struct gl_constants
|
||||||
/** Is the drivers uniform storage packed or padded to 16 bytes. */
|
/** Is the drivers uniform storage packed or padded to 16 bytes. */
|
||||||
bool PackedDriverUniformStorage;
|
bool PackedDriverUniformStorage;
|
||||||
|
|
||||||
|
/** Wether or not glBitmap uses red textures rather than alpha */
|
||||||
|
bool BitmapUsesRed;
|
||||||
|
|
||||||
/** GL_ARB_gl_spirv */
|
/** GL_ARB_gl_spirv */
|
||||||
struct spirv_supported_capabilities SpirVCapabilities;
|
struct spirv_supported_capabilities SpirVCapabilities;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -621,6 +621,11 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe,
|
||||||
ctx->Const.PackedDriverUniformStorage =
|
ctx->Const.PackedDriverUniformStorage =
|
||||||
screen->get_param(screen, PIPE_CAP_PACKED_UNIFORMS);
|
screen->get_param(screen, PIPE_CAP_PACKED_UNIFORMS);
|
||||||
|
|
||||||
|
ctx->Const.BitmapUsesRed =
|
||||||
|
screen->is_format_supported(screen, PIPE_FORMAT_R8_UNORM,
|
||||||
|
PIPE_TEXTURE_2D, 0, 0,
|
||||||
|
PIPE_BIND_SAMPLER_VIEW);
|
||||||
|
|
||||||
st->has_stencil_export =
|
st->has_stencil_export =
|
||||||
screen->get_param(screen, PIPE_CAP_SHADER_STENCIL_EXPORT);
|
screen->get_param(screen, PIPE_CAP_SHADER_STENCIL_EXPORT);
|
||||||
st->has_etc1 = screen->is_format_supported(screen, PIPE_FORMAT_ETC1_RGB8,
|
st->has_etc1 = screen->is_format_supported(screen, PIPE_FORMAT_ETC1_RGB8,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue