mesa: implement GL_DEVICE_LUID_EXT and GL_DEVICE_NODE_MASK_EXT getters
Acked-by: Marek Olšák <marek.olsak@amd.com> Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15504>
This commit is contained in:
parent
8917235d12
commit
5e8702f796
|
@ -230,6 +230,7 @@ union value {
|
|||
GLdouble value_double_2[2];
|
||||
GLmatrix *value_matrix;
|
||||
GLint value_int;
|
||||
GLint value_int_2[2];
|
||||
GLint value_int_4[4];
|
||||
GLint64 value_int64;
|
||||
GLenum value_enum;
|
||||
|
@ -979,6 +980,14 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
|
|||
_mesa_get_device_uuid(ctx, v->value_int_4);
|
||||
break;
|
||||
|
||||
/* GL_EXT_memory_object_win32 */
|
||||
case GL_DEVICE_LUID_EXT:
|
||||
_mesa_get_device_luid(ctx, v->value_int_2);
|
||||
break;
|
||||
case GL_DEVICE_NODE_MASK_EXT:
|
||||
v->value_int = ctx->pipe->screen->get_device_node_mask(ctx->pipe->screen);
|
||||
break;
|
||||
|
||||
/* GL_EXT_packed_float */
|
||||
case GL_RGBA_SIGNED_COMPONENTS_EXT:
|
||||
{
|
||||
|
@ -2872,6 +2881,17 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v)
|
|||
goto invalid_value;
|
||||
_mesa_get_device_uuid(ctx, v->value_int_4);
|
||||
return TYPE_INT_4;
|
||||
/* GL_EXT_memory_object_win32 */
|
||||
case GL_DEVICE_LUID_EXT:
|
||||
if (index >= 1)
|
||||
goto invalid_value;
|
||||
_mesa_get_device_luid(ctx, v->value_int_2);
|
||||
return TYPE_INT_2;
|
||||
case GL_DEVICE_NODE_MASK_EXT:
|
||||
if (index >= 1)
|
||||
goto invalid_value;
|
||||
v->value_int = ctx->pipe->screen->get_device_node_mask(ctx->pipe->screen);
|
||||
return TYPE_INT;
|
||||
/* GL_EXT_direct_state_access */
|
||||
case GL_TEXTURE_1D:
|
||||
case GL_TEXTURE_2D:
|
||||
|
|
|
@ -143,6 +143,10 @@ descriptor=[
|
|||
[ "NUM_DEVICE_UUIDS_EXT", "LOC_CUSTOM, TYPE_INT, NO_OFFSET, NO_EXTRA" ],
|
||||
[ "DRIVER_UUID_EXT", "LOC_CUSTOM, TYPE_INT_4, NO_OFFSET, NO_EXTRA" ],
|
||||
[ "DEVICE_UUID_EXT", "LOC_CUSTOM, TYPE_INT_4, NO_OFFSET, NO_EXTRA" ],
|
||||
|
||||
# GL_EXT_memory_object_win32
|
||||
[ "DEVICE_LUID_EXT", "LOC_CUSTOM, TYPE_INT_2, NO_OFFSET, NO_EXTRA" ],
|
||||
[ "DEVICE_NODE_MASK_EXT", "LOC_CUSTOM, TYPE_INT_4, NO_OFFSET, NO_EXTRA" ],
|
||||
]},
|
||||
|
||||
# Enums in OpenGL and GLES1
|
||||
|
|
|
@ -704,6 +704,15 @@ _mesa_get_device_uuid(struct gl_context *ctx, GLint *uuid)
|
|||
screen->get_device_uuid(screen, (char *)uuid);
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_get_device_luid(struct gl_context *ctx, GLint *luid)
|
||||
{
|
||||
struct pipe_screen *screen = ctx->pipe->screen;
|
||||
assert(GL_LUID_SIZE_EXT >= PIPE_LUID_SIZE);
|
||||
memset(luid, 0, GL_UUID_SIZE_EXT);
|
||||
screen->get_device_luid(screen, (char *)luid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the i-th GLSL version string. If index=0, return the most recent
|
||||
* supported version.
|
||||
|
|
|
@ -58,6 +58,9 @@ _mesa_get_driver_uuid(struct gl_context *ctx, GLint *uuid);
|
|||
extern void
|
||||
_mesa_get_device_uuid(struct gl_context *ctx, GLint *uuid);
|
||||
|
||||
extern void
|
||||
_mesa_get_device_luid(struct gl_context *ctx, GLint *luid);
|
||||
|
||||
extern int
|
||||
_mesa_get_shading_language_version(const struct gl_context *ctx,
|
||||
int index,
|
||||
|
|
Loading…
Reference in New Issue