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];
|
GLdouble value_double_2[2];
|
||||||
GLmatrix *value_matrix;
|
GLmatrix *value_matrix;
|
||||||
GLint value_int;
|
GLint value_int;
|
||||||
|
GLint value_int_2[2];
|
||||||
GLint value_int_4[4];
|
GLint value_int_4[4];
|
||||||
GLint64 value_int64;
|
GLint64 value_int64;
|
||||||
GLenum value_enum;
|
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);
|
_mesa_get_device_uuid(ctx, v->value_int_4);
|
||||||
break;
|
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 */
|
/* GL_EXT_packed_float */
|
||||||
case GL_RGBA_SIGNED_COMPONENTS_EXT:
|
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;
|
goto invalid_value;
|
||||||
_mesa_get_device_uuid(ctx, v->value_int_4);
|
_mesa_get_device_uuid(ctx, v->value_int_4);
|
||||||
return TYPE_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 */
|
/* GL_EXT_direct_state_access */
|
||||||
case GL_TEXTURE_1D:
|
case GL_TEXTURE_1D:
|
||||||
case GL_TEXTURE_2D:
|
case GL_TEXTURE_2D:
|
||||||
|
|
|
@ -143,6 +143,10 @@ descriptor=[
|
||||||
[ "NUM_DEVICE_UUIDS_EXT", "LOC_CUSTOM, TYPE_INT, NO_OFFSET, NO_EXTRA" ],
|
[ "NUM_DEVICE_UUIDS_EXT", "LOC_CUSTOM, TYPE_INT, NO_OFFSET, NO_EXTRA" ],
|
||||||
[ "DRIVER_UUID_EXT", "LOC_CUSTOM, TYPE_INT_4, 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" ],
|
[ "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
|
# 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);
|
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
|
* Get the i-th GLSL version string. If index=0, return the most recent
|
||||||
* supported version.
|
* supported version.
|
||||||
|
|
|
@ -58,6 +58,9 @@ _mesa_get_driver_uuid(struct gl_context *ctx, GLint *uuid);
|
||||||
extern void
|
extern void
|
||||||
_mesa_get_device_uuid(struct gl_context *ctx, GLint *uuid);
|
_mesa_get_device_uuid(struct gl_context *ctx, GLint *uuid);
|
||||||
|
|
||||||
|
extern void
|
||||||
|
_mesa_get_device_luid(struct gl_context *ctx, GLint *luid);
|
||||||
|
|
||||||
extern int
|
extern int
|
||||||
_mesa_get_shading_language_version(const struct gl_context *ctx,
|
_mesa_get_shading_language_version(const struct gl_context *ctx,
|
||||||
int index,
|
int index,
|
||||||
|
|
Loading…
Reference in New Issue