196c5ddc4Srjs/* DO NOT EDIT - This file generated automatically by gl_marshal.py script */ 296c5ddc4Srjs 396c5ddc4Srjs/* 496c5ddc4Srjs * Copyright (C) 2012 Intel Corporation 596c5ddc4Srjs * All Rights Reserved. 696c5ddc4Srjs * 796c5ddc4Srjs * Permission is hereby granted, free of charge, to any person obtaining a 896c5ddc4Srjs * copy of this software and associated documentation files (the "Software"), 996c5ddc4Srjs * to deal in the Software without restriction, including without limitation 1096c5ddc4Srjs * the rights to use, copy, modify, merge, publish, distribute, sub license, 1196c5ddc4Srjs * and/or sell copies of the Software, and to permit persons to whom the 1296c5ddc4Srjs * Software is furnished to do so, subject to the following conditions: 1396c5ddc4Srjs * 1496c5ddc4Srjs * The above copyright notice and this permission notice (including the next 1596c5ddc4Srjs * paragraph) shall be included in all copies or substantial portions of the 1696c5ddc4Srjs * Software. 1796c5ddc4Srjs * 1896c5ddc4Srjs * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1996c5ddc4Srjs * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2096c5ddc4Srjs * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 2196c5ddc4Srjs * INTEL CORPORATION, 2296c5ddc4Srjs * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 2396c5ddc4Srjs * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 2496c5ddc4Srjs * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 2596c5ddc4Srjs * SOFTWARE. 2696c5ddc4Srjs */ 2796c5ddc4Srjs 2896c5ddc4Srjs 2996c5ddc4Srjs#include "api_exec.h" 3096c5ddc4Srjs#include "glthread_marshal.h" 3196c5ddc4Srjs#include "bufferobj.h" 3296c5ddc4Srjs#include "dispatch.h" 3396c5ddc4Srjs 3496c5ddc4Srjs#define COMPAT (ctx->API != API_OPENGL_CORE) 3596c5ddc4Srjs 3696c5ddc4SrjsUNUSED static inline int safe_mul(int a, int b) 3796c5ddc4Srjs{ 3896c5ddc4Srjs if (a < 0 || b < 0) return -1; 3996c5ddc4Srjs if (a == 0 || b == 0) return 0; 4096c5ddc4Srjs if (a > INT_MAX / b) return -1; 4196c5ddc4Srjs return a * b; 4296c5ddc4Srjs} 4396c5ddc4Srjs 4496c5ddc4Srjs/* GetNamedProgramStringEXT: marshalled synchronously */ 4596c5ddc4Srjsvoid GLAPIENTRY 4696c5ddc4Srjs_mesa_marshal_GetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, GLvoid* string) 4796c5ddc4Srjs{ 4896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 4996c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetNamedProgramStringEXT"); 5096c5ddc4Srjs CALL_GetNamedProgramStringEXT(ctx->CurrentServerDispatch, (program, target, pname, string)); 5196c5ddc4Srjs} 5296c5ddc4Srjs 5396c5ddc4Srjs 5496c5ddc4Srjs/* NamedProgramLocalParameter4fEXT: marshalled asynchronously */ 5596c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4fEXT 5696c5ddc4Srjs{ 5796c5ddc4Srjs struct marshal_cmd_base cmd_base; 5896c5ddc4Srjs GLuint program; 5996c5ddc4Srjs GLenum target; 6096c5ddc4Srjs GLuint index; 6196c5ddc4Srjs GLfloat x; 6296c5ddc4Srjs GLfloat y; 6396c5ddc4Srjs GLfloat z; 6496c5ddc4Srjs GLfloat w; 6596c5ddc4Srjs}; 6696c5ddc4Srjsuint32_t 6796c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4fEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4fEXT *cmd, const uint64_t *last) 6896c5ddc4Srjs{ 6996c5ddc4Srjs GLuint program = cmd->program; 7096c5ddc4Srjs GLenum target = cmd->target; 7196c5ddc4Srjs GLuint index = cmd->index; 7296c5ddc4Srjs GLfloat x = cmd->x; 7396c5ddc4Srjs GLfloat y = cmd->y; 7496c5ddc4Srjs GLfloat z = cmd->z; 7596c5ddc4Srjs GLfloat w = cmd->w; 7696c5ddc4Srjs CALL_NamedProgramLocalParameter4fEXT(ctx->CurrentServerDispatch, (program, target, index, x, y, z, w)); 7796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4fEXT), 8) / 8); 7896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 7996c5ddc4Srjs return cmd_size; 8096c5ddc4Srjs} 8196c5ddc4Srjsvoid GLAPIENTRY 8296c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) 8396c5ddc4Srjs{ 8496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 8596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4fEXT); 8696c5ddc4Srjs struct marshal_cmd_NamedProgramLocalParameter4fEXT *cmd; 8796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4fEXT, cmd_size); 8896c5ddc4Srjs cmd->program = program; 8996c5ddc4Srjs cmd->target = target; 9096c5ddc4Srjs cmd->index = index; 9196c5ddc4Srjs cmd->x = x; 9296c5ddc4Srjs cmd->y = y; 9396c5ddc4Srjs cmd->z = z; 9496c5ddc4Srjs cmd->w = w; 9596c5ddc4Srjs} 9696c5ddc4Srjs 9796c5ddc4Srjs 9896c5ddc4Srjs/* NamedProgramLocalParameter4fvEXT: marshalled asynchronously */ 9996c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4fvEXT 10096c5ddc4Srjs{ 10196c5ddc4Srjs struct marshal_cmd_base cmd_base; 10296c5ddc4Srjs GLuint program; 10396c5ddc4Srjs GLenum target; 10496c5ddc4Srjs GLuint index; 10596c5ddc4Srjs GLfloat params[4]; 10696c5ddc4Srjs}; 10796c5ddc4Srjsuint32_t 10896c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4fvEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4fvEXT *cmd, const uint64_t *last) 10996c5ddc4Srjs{ 11096c5ddc4Srjs GLuint program = cmd->program; 11196c5ddc4Srjs GLenum target = cmd->target; 11296c5ddc4Srjs GLuint index = cmd->index; 11396c5ddc4Srjs const GLfloat * params = cmd->params; 11496c5ddc4Srjs CALL_NamedProgramLocalParameter4fvEXT(ctx->CurrentServerDispatch, (program, target, index, params)); 11596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4fvEXT), 8) / 8); 11696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 11796c5ddc4Srjs return cmd_size; 11896c5ddc4Srjs} 11996c5ddc4Srjsvoid GLAPIENTRY 12096c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat* params) 12196c5ddc4Srjs{ 12296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 12396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4fvEXT); 12496c5ddc4Srjs struct marshal_cmd_NamedProgramLocalParameter4fvEXT *cmd; 12596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4fvEXT, cmd_size); 12696c5ddc4Srjs cmd->program = program; 12796c5ddc4Srjs cmd->target = target; 12896c5ddc4Srjs cmd->index = index; 12996c5ddc4Srjs memcpy(cmd->params, params, 4 * sizeof(GLfloat)); 13096c5ddc4Srjs} 13196c5ddc4Srjs 13296c5ddc4Srjs 13396c5ddc4Srjs/* GetNamedProgramLocalParameterfvEXT: marshalled synchronously */ 13496c5ddc4Srjsvoid GLAPIENTRY 13596c5ddc4Srjs_mesa_marshal_GetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat* params) 13696c5ddc4Srjs{ 13796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 13896c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetNamedProgramLocalParameterfvEXT"); 13996c5ddc4Srjs CALL_GetNamedProgramLocalParameterfvEXT(ctx->CurrentServerDispatch, (program, target, index, params)); 14096c5ddc4Srjs} 14196c5ddc4Srjs 14296c5ddc4Srjs 14396c5ddc4Srjs/* NamedProgramLocalParameter4dEXT: marshalled asynchronously */ 14496c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4dEXT 14596c5ddc4Srjs{ 14696c5ddc4Srjs struct marshal_cmd_base cmd_base; 14796c5ddc4Srjs GLuint program; 14896c5ddc4Srjs GLenum target; 14996c5ddc4Srjs GLuint index; 15096c5ddc4Srjs GLdouble x; 15196c5ddc4Srjs GLdouble y; 15296c5ddc4Srjs GLdouble z; 15396c5ddc4Srjs GLdouble w; 15496c5ddc4Srjs}; 15596c5ddc4Srjsuint32_t 15696c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4dEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4dEXT *cmd, const uint64_t *last) 15796c5ddc4Srjs{ 15896c5ddc4Srjs GLuint program = cmd->program; 15996c5ddc4Srjs GLenum target = cmd->target; 16096c5ddc4Srjs GLuint index = cmd->index; 16196c5ddc4Srjs GLdouble x = cmd->x; 16296c5ddc4Srjs GLdouble y = cmd->y; 16396c5ddc4Srjs GLdouble z = cmd->z; 16496c5ddc4Srjs GLdouble w = cmd->w; 16596c5ddc4Srjs CALL_NamedProgramLocalParameter4dEXT(ctx->CurrentServerDispatch, (program, target, index, x, y, z, w)); 16696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4dEXT), 8) / 8); 16796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 16896c5ddc4Srjs return cmd_size; 16996c5ddc4Srjs} 17096c5ddc4Srjsvoid GLAPIENTRY 17196c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) 17296c5ddc4Srjs{ 17396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 17496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4dEXT); 17596c5ddc4Srjs struct marshal_cmd_NamedProgramLocalParameter4dEXT *cmd; 17696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4dEXT, cmd_size); 17796c5ddc4Srjs cmd->program = program; 17896c5ddc4Srjs cmd->target = target; 17996c5ddc4Srjs cmd->index = index; 18096c5ddc4Srjs cmd->x = x; 18196c5ddc4Srjs cmd->y = y; 18296c5ddc4Srjs cmd->z = z; 18396c5ddc4Srjs cmd->w = w; 18496c5ddc4Srjs} 18596c5ddc4Srjs 18696c5ddc4Srjs 18796c5ddc4Srjs/* NamedProgramLocalParameter4dvEXT: marshalled asynchronously */ 18896c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameter4dvEXT 18996c5ddc4Srjs{ 19096c5ddc4Srjs struct marshal_cmd_base cmd_base; 19196c5ddc4Srjs GLuint program; 19296c5ddc4Srjs GLenum target; 19396c5ddc4Srjs GLuint index; 19496c5ddc4Srjs GLdouble params[4]; 19596c5ddc4Srjs}; 19696c5ddc4Srjsuint32_t 19796c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameter4dvEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameter4dvEXT *cmd, const uint64_t *last) 19896c5ddc4Srjs{ 19996c5ddc4Srjs GLuint program = cmd->program; 20096c5ddc4Srjs GLenum target = cmd->target; 20196c5ddc4Srjs GLuint index = cmd->index; 20296c5ddc4Srjs const GLdouble * params = cmd->params; 20396c5ddc4Srjs CALL_NamedProgramLocalParameter4dvEXT(ctx->CurrentServerDispatch, (program, target, index, params)); 20496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameter4dvEXT), 8) / 8); 20596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 20696c5ddc4Srjs return cmd_size; 20796c5ddc4Srjs} 20896c5ddc4Srjsvoid GLAPIENTRY 20996c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble* params) 21096c5ddc4Srjs{ 21196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 21296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameter4dvEXT); 21396c5ddc4Srjs struct marshal_cmd_NamedProgramLocalParameter4dvEXT *cmd; 21496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameter4dvEXT, cmd_size); 21596c5ddc4Srjs cmd->program = program; 21696c5ddc4Srjs cmd->target = target; 21796c5ddc4Srjs cmd->index = index; 21896c5ddc4Srjs memcpy(cmd->params, params, 4 * sizeof(GLdouble)); 21996c5ddc4Srjs} 22096c5ddc4Srjs 22196c5ddc4Srjs 22296c5ddc4Srjs/* GetNamedProgramLocalParameterdvEXT: marshalled synchronously */ 22396c5ddc4Srjsvoid GLAPIENTRY 22496c5ddc4Srjs_mesa_marshal_GetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble* params) 22596c5ddc4Srjs{ 22696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 22796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetNamedProgramLocalParameterdvEXT"); 22896c5ddc4Srjs CALL_GetNamedProgramLocalParameterdvEXT(ctx->CurrentServerDispatch, (program, target, index, params)); 22996c5ddc4Srjs} 23096c5ddc4Srjs 23196c5ddc4Srjs 23296c5ddc4Srjs/* GetNamedProgramivEXT: marshalled synchronously */ 23396c5ddc4Srjsvoid GLAPIENTRY 23496c5ddc4Srjs_mesa_marshal_GetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint* params) 23596c5ddc4Srjs{ 23696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 23796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetNamedProgramivEXT"); 23896c5ddc4Srjs CALL_GetNamedProgramivEXT(ctx->CurrentServerDispatch, (program, target, pname, params)); 23996c5ddc4Srjs} 24096c5ddc4Srjs 24196c5ddc4Srjs 24296c5ddc4Srjs/* TextureBufferEXT: marshalled asynchronously */ 24396c5ddc4Srjsstruct marshal_cmd_TextureBufferEXT 24496c5ddc4Srjs{ 24596c5ddc4Srjs struct marshal_cmd_base cmd_base; 24696c5ddc4Srjs GLuint texture; 24796c5ddc4Srjs GLenum target; 24896c5ddc4Srjs GLenum internalformat; 24996c5ddc4Srjs GLuint buffer; 25096c5ddc4Srjs}; 25196c5ddc4Srjsuint32_t 25296c5ddc4Srjs_mesa_unmarshal_TextureBufferEXT(struct gl_context *ctx, const struct marshal_cmd_TextureBufferEXT *cmd, const uint64_t *last) 25396c5ddc4Srjs{ 25496c5ddc4Srjs GLuint texture = cmd->texture; 25596c5ddc4Srjs GLenum target = cmd->target; 25696c5ddc4Srjs GLenum internalformat = cmd->internalformat; 25796c5ddc4Srjs GLuint buffer = cmd->buffer; 25896c5ddc4Srjs CALL_TextureBufferEXT(ctx->CurrentServerDispatch, (texture, target, internalformat, buffer)); 25996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureBufferEXT), 8) / 8); 26096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 26196c5ddc4Srjs return cmd_size; 26296c5ddc4Srjs} 26396c5ddc4Srjsvoid GLAPIENTRY 26496c5ddc4Srjs_mesa_marshal_TextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer) 26596c5ddc4Srjs{ 26696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 26796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureBufferEXT); 26896c5ddc4Srjs struct marshal_cmd_TextureBufferEXT *cmd; 26996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureBufferEXT, cmd_size); 27096c5ddc4Srjs cmd->texture = texture; 27196c5ddc4Srjs cmd->target = target; 27296c5ddc4Srjs cmd->internalformat = internalformat; 27396c5ddc4Srjs cmd->buffer = buffer; 27496c5ddc4Srjs} 27596c5ddc4Srjs 27696c5ddc4Srjs 27796c5ddc4Srjs/* MultiTexBufferEXT: marshalled asynchronously */ 27896c5ddc4Srjsstruct marshal_cmd_MultiTexBufferEXT 27996c5ddc4Srjs{ 28096c5ddc4Srjs struct marshal_cmd_base cmd_base; 28196c5ddc4Srjs GLenum texunit; 28296c5ddc4Srjs GLenum target; 28396c5ddc4Srjs GLenum internalformat; 28496c5ddc4Srjs GLuint buffer; 28596c5ddc4Srjs}; 28696c5ddc4Srjsuint32_t 28796c5ddc4Srjs_mesa_unmarshal_MultiTexBufferEXT(struct gl_context *ctx, const struct marshal_cmd_MultiTexBufferEXT *cmd, const uint64_t *last) 28896c5ddc4Srjs{ 28996c5ddc4Srjs GLenum texunit = cmd->texunit; 29096c5ddc4Srjs GLenum target = cmd->target; 29196c5ddc4Srjs GLenum internalformat = cmd->internalformat; 29296c5ddc4Srjs GLuint buffer = cmd->buffer; 29396c5ddc4Srjs CALL_MultiTexBufferEXT(ctx->CurrentServerDispatch, (texunit, target, internalformat, buffer)); 29496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexBufferEXT), 8) / 8); 29596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 29696c5ddc4Srjs return cmd_size; 29796c5ddc4Srjs} 29896c5ddc4Srjsvoid GLAPIENTRY 29996c5ddc4Srjs_mesa_marshal_MultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer) 30096c5ddc4Srjs{ 30196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 30296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexBufferEXT); 30396c5ddc4Srjs struct marshal_cmd_MultiTexBufferEXT *cmd; 30496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexBufferEXT, cmd_size); 30596c5ddc4Srjs cmd->texunit = texunit; 30696c5ddc4Srjs cmd->target = target; 30796c5ddc4Srjs cmd->internalformat = internalformat; 30896c5ddc4Srjs cmd->buffer = buffer; 30996c5ddc4Srjs} 31096c5ddc4Srjs 31196c5ddc4Srjs 31296c5ddc4Srjs/* TextureParameterIivEXT: marshalled asynchronously */ 31396c5ddc4Srjsstruct marshal_cmd_TextureParameterIivEXT 31496c5ddc4Srjs{ 31596c5ddc4Srjs struct marshal_cmd_base cmd_base; 31696c5ddc4Srjs GLuint texture; 31796c5ddc4Srjs GLenum target; 31896c5ddc4Srjs GLenum pname; 31996c5ddc4Srjs /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_tex_param_enum_to_count(pname)] */ 32096c5ddc4Srjs}; 32196c5ddc4Srjsuint32_t 32296c5ddc4Srjs_mesa_unmarshal_TextureParameterIivEXT(struct gl_context *ctx, const struct marshal_cmd_TextureParameterIivEXT *cmd, const uint64_t *last) 32396c5ddc4Srjs{ 32496c5ddc4Srjs GLuint texture = cmd->texture; 32596c5ddc4Srjs GLenum target = cmd->target; 32696c5ddc4Srjs GLenum pname = cmd->pname; 32796c5ddc4Srjs GLint * params; 32896c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 32996c5ddc4Srjs params = (GLint *) variable_data; 33096c5ddc4Srjs CALL_TextureParameterIivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params)); 33196c5ddc4Srjs return cmd->cmd_base.cmd_size; 33296c5ddc4Srjs} 33396c5ddc4Srjsvoid GLAPIENTRY 33496c5ddc4Srjs_mesa_marshal_TextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint* params) 33596c5ddc4Srjs{ 33696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 33796c5ddc4Srjs int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)); 33896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureParameterIivEXT) + params_size; 33996c5ddc4Srjs struct marshal_cmd_TextureParameterIivEXT *cmd; 34096c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 34196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TextureParameterIivEXT"); 34296c5ddc4Srjs CALL_TextureParameterIivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params)); 34396c5ddc4Srjs return; 34496c5ddc4Srjs } 34596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureParameterIivEXT, cmd_size); 34696c5ddc4Srjs cmd->texture = texture; 34796c5ddc4Srjs cmd->target = target; 34896c5ddc4Srjs cmd->pname = pname; 34996c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 35096c5ddc4Srjs memcpy(variable_data, params, params_size); 35196c5ddc4Srjs} 35296c5ddc4Srjs 35396c5ddc4Srjs 35496c5ddc4Srjs/* TextureParameterIuivEXT: marshalled asynchronously */ 35596c5ddc4Srjsstruct marshal_cmd_TextureParameterIuivEXT 35696c5ddc4Srjs{ 35796c5ddc4Srjs struct marshal_cmd_base cmd_base; 35896c5ddc4Srjs GLuint texture; 35996c5ddc4Srjs GLenum target; 36096c5ddc4Srjs GLenum pname; 36196c5ddc4Srjs /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)) bytes are GLuint params[_mesa_tex_param_enum_to_count(pname)] */ 36296c5ddc4Srjs}; 36396c5ddc4Srjsuint32_t 36496c5ddc4Srjs_mesa_unmarshal_TextureParameterIuivEXT(struct gl_context *ctx, const struct marshal_cmd_TextureParameterIuivEXT *cmd, const uint64_t *last) 36596c5ddc4Srjs{ 36696c5ddc4Srjs GLuint texture = cmd->texture; 36796c5ddc4Srjs GLenum target = cmd->target; 36896c5ddc4Srjs GLenum pname = cmd->pname; 36996c5ddc4Srjs GLuint * params; 37096c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 37196c5ddc4Srjs params = (GLuint *) variable_data; 37296c5ddc4Srjs CALL_TextureParameterIuivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params)); 37396c5ddc4Srjs return cmd->cmd_base.cmd_size; 37496c5ddc4Srjs} 37596c5ddc4Srjsvoid GLAPIENTRY 37696c5ddc4Srjs_mesa_marshal_TextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint* params) 37796c5ddc4Srjs{ 37896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 37996c5ddc4Srjs int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)); 38096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureParameterIuivEXT) + params_size; 38196c5ddc4Srjs struct marshal_cmd_TextureParameterIuivEXT *cmd; 38296c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 38396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TextureParameterIuivEXT"); 38496c5ddc4Srjs CALL_TextureParameterIuivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params)); 38596c5ddc4Srjs return; 38696c5ddc4Srjs } 38796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureParameterIuivEXT, cmd_size); 38896c5ddc4Srjs cmd->texture = texture; 38996c5ddc4Srjs cmd->target = target; 39096c5ddc4Srjs cmd->pname = pname; 39196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 39296c5ddc4Srjs memcpy(variable_data, params, params_size); 39396c5ddc4Srjs} 39496c5ddc4Srjs 39596c5ddc4Srjs 39696c5ddc4Srjs/* GetTextureParameterIivEXT: marshalled synchronously */ 39796c5ddc4Srjsvoid GLAPIENTRY 39896c5ddc4Srjs_mesa_marshal_GetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint* params) 39996c5ddc4Srjs{ 40096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 40196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTextureParameterIivEXT"); 40296c5ddc4Srjs CALL_GetTextureParameterIivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params)); 40396c5ddc4Srjs} 40496c5ddc4Srjs 40596c5ddc4Srjs 40696c5ddc4Srjs/* GetTextureParameterIuivEXT: marshalled synchronously */ 40796c5ddc4Srjsvoid GLAPIENTRY 40896c5ddc4Srjs_mesa_marshal_GetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint* params) 40996c5ddc4Srjs{ 41096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 41196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTextureParameterIuivEXT"); 41296c5ddc4Srjs CALL_GetTextureParameterIuivEXT(ctx->CurrentServerDispatch, (texture, target, pname, params)); 41396c5ddc4Srjs} 41496c5ddc4Srjs 41596c5ddc4Srjs 41696c5ddc4Srjs/* MultiTexParameterIivEXT: marshalled asynchronously */ 41796c5ddc4Srjsstruct marshal_cmd_MultiTexParameterIivEXT 41896c5ddc4Srjs{ 41996c5ddc4Srjs struct marshal_cmd_base cmd_base; 42096c5ddc4Srjs GLenum texunit; 42196c5ddc4Srjs GLenum target; 42296c5ddc4Srjs GLenum pname; 42396c5ddc4Srjs /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_tex_param_enum_to_count(pname)] */ 42496c5ddc4Srjs}; 42596c5ddc4Srjsuint32_t 42696c5ddc4Srjs_mesa_unmarshal_MultiTexParameterIivEXT(struct gl_context *ctx, const struct marshal_cmd_MultiTexParameterIivEXT *cmd, const uint64_t *last) 42796c5ddc4Srjs{ 42896c5ddc4Srjs GLenum texunit = cmd->texunit; 42996c5ddc4Srjs GLenum target = cmd->target; 43096c5ddc4Srjs GLenum pname = cmd->pname; 43196c5ddc4Srjs GLint * params; 43296c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 43396c5ddc4Srjs params = (GLint *) variable_data; 43496c5ddc4Srjs CALL_MultiTexParameterIivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params)); 43596c5ddc4Srjs return cmd->cmd_base.cmd_size; 43696c5ddc4Srjs} 43796c5ddc4Srjsvoid GLAPIENTRY 43896c5ddc4Srjs_mesa_marshal_MultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint* params) 43996c5ddc4Srjs{ 44096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 44196c5ddc4Srjs int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)); 44296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexParameterIivEXT) + params_size; 44396c5ddc4Srjs struct marshal_cmd_MultiTexParameterIivEXT *cmd; 44496c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 44596c5ddc4Srjs _mesa_glthread_finish_before(ctx, "MultiTexParameterIivEXT"); 44696c5ddc4Srjs CALL_MultiTexParameterIivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params)); 44796c5ddc4Srjs return; 44896c5ddc4Srjs } 44996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexParameterIivEXT, cmd_size); 45096c5ddc4Srjs cmd->texunit = texunit; 45196c5ddc4Srjs cmd->target = target; 45296c5ddc4Srjs cmd->pname = pname; 45396c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 45496c5ddc4Srjs memcpy(variable_data, params, params_size); 45596c5ddc4Srjs} 45696c5ddc4Srjs 45796c5ddc4Srjs 45896c5ddc4Srjs/* MultiTexParameterIuivEXT: marshalled asynchronously */ 45996c5ddc4Srjsstruct marshal_cmd_MultiTexParameterIuivEXT 46096c5ddc4Srjs{ 46196c5ddc4Srjs struct marshal_cmd_base cmd_base; 46296c5ddc4Srjs GLenum texunit; 46396c5ddc4Srjs GLenum target; 46496c5ddc4Srjs GLenum pname; 46596c5ddc4Srjs /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)) bytes are GLuint params[_mesa_tex_param_enum_to_count(pname)] */ 46696c5ddc4Srjs}; 46796c5ddc4Srjsuint32_t 46896c5ddc4Srjs_mesa_unmarshal_MultiTexParameterIuivEXT(struct gl_context *ctx, const struct marshal_cmd_MultiTexParameterIuivEXT *cmd, const uint64_t *last) 46996c5ddc4Srjs{ 47096c5ddc4Srjs GLenum texunit = cmd->texunit; 47196c5ddc4Srjs GLenum target = cmd->target; 47296c5ddc4Srjs GLenum pname = cmd->pname; 47396c5ddc4Srjs GLuint * params; 47496c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 47596c5ddc4Srjs params = (GLuint *) variable_data; 47696c5ddc4Srjs CALL_MultiTexParameterIuivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params)); 47796c5ddc4Srjs return cmd->cmd_base.cmd_size; 47896c5ddc4Srjs} 47996c5ddc4Srjsvoid GLAPIENTRY 48096c5ddc4Srjs_mesa_marshal_MultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint* params) 48196c5ddc4Srjs{ 48296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 48396c5ddc4Srjs int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)); 48496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexParameterIuivEXT) + params_size; 48596c5ddc4Srjs struct marshal_cmd_MultiTexParameterIuivEXT *cmd; 48696c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 48796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "MultiTexParameterIuivEXT"); 48896c5ddc4Srjs CALL_MultiTexParameterIuivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params)); 48996c5ddc4Srjs return; 49096c5ddc4Srjs } 49196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexParameterIuivEXT, cmd_size); 49296c5ddc4Srjs cmd->texunit = texunit; 49396c5ddc4Srjs cmd->target = target; 49496c5ddc4Srjs cmd->pname = pname; 49596c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 49696c5ddc4Srjs memcpy(variable_data, params, params_size); 49796c5ddc4Srjs} 49896c5ddc4Srjs 49996c5ddc4Srjs 50096c5ddc4Srjs/* GetMultiTexParameterIivEXT: marshalled synchronously */ 50196c5ddc4Srjsvoid GLAPIENTRY 50296c5ddc4Srjs_mesa_marshal_GetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint* params) 50396c5ddc4Srjs{ 50496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 50596c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetMultiTexParameterIivEXT"); 50696c5ddc4Srjs CALL_GetMultiTexParameterIivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params)); 50796c5ddc4Srjs} 50896c5ddc4Srjs 50996c5ddc4Srjs 51096c5ddc4Srjs/* GetMultiTexParameterIuivEXT: marshalled synchronously */ 51196c5ddc4Srjsvoid GLAPIENTRY 51296c5ddc4Srjs_mesa_marshal_GetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint* params) 51396c5ddc4Srjs{ 51496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 51596c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetMultiTexParameterIuivEXT"); 51696c5ddc4Srjs CALL_GetMultiTexParameterIuivEXT(ctx->CurrentServerDispatch, (texunit, target, pname, params)); 51796c5ddc4Srjs} 51896c5ddc4Srjs 51996c5ddc4Srjs 52096c5ddc4Srjs/* NamedProgramLocalParameters4fvEXT: marshalled asynchronously */ 52196c5ddc4Srjsstruct marshal_cmd_NamedProgramLocalParameters4fvEXT 52296c5ddc4Srjs{ 52396c5ddc4Srjs struct marshal_cmd_base cmd_base; 52496c5ddc4Srjs GLuint program; 52596c5ddc4Srjs GLenum target; 52696c5ddc4Srjs GLuint index; 52796c5ddc4Srjs GLsizei count; 52896c5ddc4Srjs GLfloat params[4]; 52996c5ddc4Srjs}; 53096c5ddc4Srjsuint32_t 53196c5ddc4Srjs_mesa_unmarshal_NamedProgramLocalParameters4fvEXT(struct gl_context *ctx, const struct marshal_cmd_NamedProgramLocalParameters4fvEXT *cmd, const uint64_t *last) 53296c5ddc4Srjs{ 53396c5ddc4Srjs GLuint program = cmd->program; 53496c5ddc4Srjs GLenum target = cmd->target; 53596c5ddc4Srjs GLuint index = cmd->index; 53696c5ddc4Srjs GLsizei count = cmd->count; 53796c5ddc4Srjs const GLfloat * params = cmd->params; 53896c5ddc4Srjs CALL_NamedProgramLocalParameters4fvEXT(ctx->CurrentServerDispatch, (program, target, index, count, params)); 53996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedProgramLocalParameters4fvEXT), 8) / 8); 54096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 54196c5ddc4Srjs return cmd_size; 54296c5ddc4Srjs} 54396c5ddc4Srjsvoid GLAPIENTRY 54496c5ddc4Srjs_mesa_marshal_NamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params) 54596c5ddc4Srjs{ 54696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 54796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_NamedProgramLocalParameters4fvEXT); 54896c5ddc4Srjs struct marshal_cmd_NamedProgramLocalParameters4fvEXT *cmd; 54996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedProgramLocalParameters4fvEXT, cmd_size); 55096c5ddc4Srjs cmd->program = program; 55196c5ddc4Srjs cmd->target = target; 55296c5ddc4Srjs cmd->index = index; 55396c5ddc4Srjs cmd->count = count; 55496c5ddc4Srjs memcpy(cmd->params, params, 4 * sizeof(GLfloat)); 55596c5ddc4Srjs} 55696c5ddc4Srjs 55796c5ddc4Srjs 55896c5ddc4Srjs/* BindImageTextureEXT: marshalled asynchronously */ 55996c5ddc4Srjsstruct marshal_cmd_BindImageTextureEXT 56096c5ddc4Srjs{ 56196c5ddc4Srjs struct marshal_cmd_base cmd_base; 56296c5ddc4Srjs GLboolean layered; 56396c5ddc4Srjs GLuint index; 56496c5ddc4Srjs GLuint texture; 56596c5ddc4Srjs GLint level; 56696c5ddc4Srjs GLint layer; 56796c5ddc4Srjs GLenum access; 56896c5ddc4Srjs GLint format; 56996c5ddc4Srjs}; 57096c5ddc4Srjsuint32_t 57196c5ddc4Srjs_mesa_unmarshal_BindImageTextureEXT(struct gl_context *ctx, const struct marshal_cmd_BindImageTextureEXT *cmd, const uint64_t *last) 57296c5ddc4Srjs{ 57396c5ddc4Srjs GLuint index = cmd->index; 57496c5ddc4Srjs GLuint texture = cmd->texture; 57596c5ddc4Srjs GLint level = cmd->level; 57696c5ddc4Srjs GLboolean layered = cmd->layered; 57796c5ddc4Srjs GLint layer = cmd->layer; 57896c5ddc4Srjs GLenum access = cmd->access; 57996c5ddc4Srjs GLint format = cmd->format; 58096c5ddc4Srjs CALL_BindImageTextureEXT(ctx->CurrentServerDispatch, (index, texture, level, layered, layer, access, format)); 58196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindImageTextureEXT), 8) / 8); 58296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 58396c5ddc4Srjs return cmd_size; 58496c5ddc4Srjs} 58596c5ddc4Srjsvoid GLAPIENTRY 58696c5ddc4Srjs_mesa_marshal_BindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format) 58796c5ddc4Srjs{ 58896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 58996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BindImageTextureEXT); 59096c5ddc4Srjs struct marshal_cmd_BindImageTextureEXT *cmd; 59196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindImageTextureEXT, cmd_size); 59296c5ddc4Srjs cmd->index = index; 59396c5ddc4Srjs cmd->texture = texture; 59496c5ddc4Srjs cmd->level = level; 59596c5ddc4Srjs cmd->layered = layered; 59696c5ddc4Srjs cmd->layer = layer; 59796c5ddc4Srjs cmd->access = access; 59896c5ddc4Srjs cmd->format = format; 59996c5ddc4Srjs} 60096c5ddc4Srjs 60196c5ddc4Srjs 60296c5ddc4Srjs/* SubpixelPrecisionBiasNV: marshalled asynchronously */ 60396c5ddc4Srjsstruct marshal_cmd_SubpixelPrecisionBiasNV 60496c5ddc4Srjs{ 60596c5ddc4Srjs struct marshal_cmd_base cmd_base; 60696c5ddc4Srjs GLuint xbits; 60796c5ddc4Srjs GLuint ybits; 60896c5ddc4Srjs}; 60996c5ddc4Srjsuint32_t 61096c5ddc4Srjs_mesa_unmarshal_SubpixelPrecisionBiasNV(struct gl_context *ctx, const struct marshal_cmd_SubpixelPrecisionBiasNV *cmd, const uint64_t *last) 61196c5ddc4Srjs{ 61296c5ddc4Srjs GLuint xbits = cmd->xbits; 61396c5ddc4Srjs GLuint ybits = cmd->ybits; 61496c5ddc4Srjs CALL_SubpixelPrecisionBiasNV(ctx->CurrentServerDispatch, (xbits, ybits)); 61596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SubpixelPrecisionBiasNV), 8) / 8); 61696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 61796c5ddc4Srjs return cmd_size; 61896c5ddc4Srjs} 61996c5ddc4Srjsvoid GLAPIENTRY 62096c5ddc4Srjs_mesa_marshal_SubpixelPrecisionBiasNV(GLuint xbits, GLuint ybits) 62196c5ddc4Srjs{ 62296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 62396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_SubpixelPrecisionBiasNV); 62496c5ddc4Srjs struct marshal_cmd_SubpixelPrecisionBiasNV *cmd; 62596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SubpixelPrecisionBiasNV, cmd_size); 62696c5ddc4Srjs cmd->xbits = xbits; 62796c5ddc4Srjs cmd->ybits = ybits; 62896c5ddc4Srjs} 62996c5ddc4Srjs 63096c5ddc4Srjs 63196c5ddc4Srjs/* ConservativeRasterParameterfNV: marshalled asynchronously */ 63296c5ddc4Srjsstruct marshal_cmd_ConservativeRasterParameterfNV 63396c5ddc4Srjs{ 63496c5ddc4Srjs struct marshal_cmd_base cmd_base; 63596c5ddc4Srjs GLenum pname; 63696c5ddc4Srjs GLfloat param; 63796c5ddc4Srjs}; 63896c5ddc4Srjsuint32_t 63996c5ddc4Srjs_mesa_unmarshal_ConservativeRasterParameterfNV(struct gl_context *ctx, const struct marshal_cmd_ConservativeRasterParameterfNV *cmd, const uint64_t *last) 64096c5ddc4Srjs{ 64196c5ddc4Srjs GLenum pname = cmd->pname; 64296c5ddc4Srjs GLfloat param = cmd->param; 64396c5ddc4Srjs CALL_ConservativeRasterParameterfNV(ctx->CurrentServerDispatch, (pname, param)); 64496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ConservativeRasterParameterfNV), 8) / 8); 64596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 64696c5ddc4Srjs return cmd_size; 64796c5ddc4Srjs} 64896c5ddc4Srjsvoid GLAPIENTRY 64996c5ddc4Srjs_mesa_marshal_ConservativeRasterParameterfNV(GLenum pname, GLfloat param) 65096c5ddc4Srjs{ 65196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 65296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ConservativeRasterParameterfNV); 65396c5ddc4Srjs struct marshal_cmd_ConservativeRasterParameterfNV *cmd; 65496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ConservativeRasterParameterfNV, cmd_size); 65596c5ddc4Srjs cmd->pname = pname; 65696c5ddc4Srjs cmd->param = param; 65796c5ddc4Srjs} 65896c5ddc4Srjs 65996c5ddc4Srjs 66096c5ddc4Srjs/* ConservativeRasterParameteriNV: marshalled asynchronously */ 66196c5ddc4Srjsstruct marshal_cmd_ConservativeRasterParameteriNV 66296c5ddc4Srjs{ 66396c5ddc4Srjs struct marshal_cmd_base cmd_base; 66496c5ddc4Srjs GLenum pname; 66596c5ddc4Srjs GLint param; 66696c5ddc4Srjs}; 66796c5ddc4Srjsuint32_t 66896c5ddc4Srjs_mesa_unmarshal_ConservativeRasterParameteriNV(struct gl_context *ctx, const struct marshal_cmd_ConservativeRasterParameteriNV *cmd, const uint64_t *last) 66996c5ddc4Srjs{ 67096c5ddc4Srjs GLenum pname = cmd->pname; 67196c5ddc4Srjs GLint param = cmd->param; 67296c5ddc4Srjs CALL_ConservativeRasterParameteriNV(ctx->CurrentServerDispatch, (pname, param)); 67396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ConservativeRasterParameteriNV), 8) / 8); 67496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 67596c5ddc4Srjs return cmd_size; 67696c5ddc4Srjs} 67796c5ddc4Srjsvoid GLAPIENTRY 67896c5ddc4Srjs_mesa_marshal_ConservativeRasterParameteriNV(GLenum pname, GLint param) 67996c5ddc4Srjs{ 68096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 68196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ConservativeRasterParameteriNV); 68296c5ddc4Srjs struct marshal_cmd_ConservativeRasterParameteriNV *cmd; 68396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ConservativeRasterParameteriNV, cmd_size); 68496c5ddc4Srjs cmd->pname = pname; 68596c5ddc4Srjs cmd->param = param; 68696c5ddc4Srjs} 68796c5ddc4Srjs 68896c5ddc4Srjs 68996c5ddc4Srjs/* GetFirstPerfQueryIdINTEL: marshalled synchronously */ 69096c5ddc4Srjsvoid GLAPIENTRY 69196c5ddc4Srjs_mesa_marshal_GetFirstPerfQueryIdINTEL(GLuint * queryId) 69296c5ddc4Srjs{ 69396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 69496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetFirstPerfQueryIdINTEL"); 69596c5ddc4Srjs CALL_GetFirstPerfQueryIdINTEL(ctx->CurrentServerDispatch, (queryId)); 69696c5ddc4Srjs} 69796c5ddc4Srjs 69896c5ddc4Srjs 69996c5ddc4Srjs/* GetNextPerfQueryIdINTEL: marshalled synchronously */ 70096c5ddc4Srjsvoid GLAPIENTRY 70196c5ddc4Srjs_mesa_marshal_GetNextPerfQueryIdINTEL(GLuint queryId, GLuint * nextQueryId) 70296c5ddc4Srjs{ 70396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 70496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetNextPerfQueryIdINTEL"); 70596c5ddc4Srjs CALL_GetNextPerfQueryIdINTEL(ctx->CurrentServerDispatch, (queryId, nextQueryId)); 70696c5ddc4Srjs} 70796c5ddc4Srjs 70896c5ddc4Srjs 70996c5ddc4Srjs/* GetPerfQueryIdByNameINTEL: marshalled synchronously */ 71096c5ddc4Srjsvoid GLAPIENTRY 71196c5ddc4Srjs_mesa_marshal_GetPerfQueryIdByNameINTEL(GLchar * queryName, GLuint * queryId) 71296c5ddc4Srjs{ 71396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 71496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetPerfQueryIdByNameINTEL"); 71596c5ddc4Srjs CALL_GetPerfQueryIdByNameINTEL(ctx->CurrentServerDispatch, (queryName, queryId)); 71696c5ddc4Srjs} 71796c5ddc4Srjs 71896c5ddc4Srjs 71996c5ddc4Srjs/* GetPerfQueryInfoINTEL: marshalled synchronously */ 72096c5ddc4Srjsvoid GLAPIENTRY 72196c5ddc4Srjs_mesa_marshal_GetPerfQueryInfoINTEL(GLuint queryId, GLuint queryNameLength, GLchar * queryName, GLuint * dataSize, GLuint * noCounters, GLuint * noInstances, GLuint * capsMask) 72296c5ddc4Srjs{ 72396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 72496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetPerfQueryInfoINTEL"); 72596c5ddc4Srjs CALL_GetPerfQueryInfoINTEL(ctx->CurrentServerDispatch, (queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask)); 72696c5ddc4Srjs} 72796c5ddc4Srjs 72896c5ddc4Srjs 72996c5ddc4Srjs/* GetPerfCounterInfoINTEL: marshalled synchronously */ 73096c5ddc4Srjsvoid GLAPIENTRY 73196c5ddc4Srjs_mesa_marshal_GetPerfCounterInfoINTEL(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar * counterName, GLuint counterDescLength, GLchar * counterDesc, GLuint * counterOffset, GLuint * counterDataSize, GLuint * counterTypeEnum, GLuint * counterDataTypeEnum, GLuint64 * rawCounterMaxValue) 73296c5ddc4Srjs{ 73396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 73496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetPerfCounterInfoINTEL"); 73596c5ddc4Srjs CALL_GetPerfCounterInfoINTEL(ctx->CurrentServerDispatch, (queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue)); 73696c5ddc4Srjs} 73796c5ddc4Srjs 73896c5ddc4Srjs 73996c5ddc4Srjs/* CreatePerfQueryINTEL: marshalled synchronously */ 74096c5ddc4Srjsvoid GLAPIENTRY 74196c5ddc4Srjs_mesa_marshal_CreatePerfQueryINTEL(GLuint queryId, GLuint * queryHandle) 74296c5ddc4Srjs{ 74396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 74496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "CreatePerfQueryINTEL"); 74596c5ddc4Srjs CALL_CreatePerfQueryINTEL(ctx->CurrentServerDispatch, (queryId, queryHandle)); 74696c5ddc4Srjs} 74796c5ddc4Srjs 74896c5ddc4Srjs 74996c5ddc4Srjs/* DeletePerfQueryINTEL: marshalled asynchronously */ 75096c5ddc4Srjsstruct marshal_cmd_DeletePerfQueryINTEL 75196c5ddc4Srjs{ 75296c5ddc4Srjs struct marshal_cmd_base cmd_base; 75396c5ddc4Srjs GLuint queryHandle; 75496c5ddc4Srjs}; 75596c5ddc4Srjsuint32_t 75696c5ddc4Srjs_mesa_unmarshal_DeletePerfQueryINTEL(struct gl_context *ctx, const struct marshal_cmd_DeletePerfQueryINTEL *cmd, const uint64_t *last) 75796c5ddc4Srjs{ 75896c5ddc4Srjs GLuint queryHandle = cmd->queryHandle; 75996c5ddc4Srjs CALL_DeletePerfQueryINTEL(ctx->CurrentServerDispatch, (queryHandle)); 76096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DeletePerfQueryINTEL), 8) / 8); 76196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 76296c5ddc4Srjs return cmd_size; 76396c5ddc4Srjs} 76496c5ddc4Srjsvoid GLAPIENTRY 76596c5ddc4Srjs_mesa_marshal_DeletePerfQueryINTEL(GLuint queryHandle) 76696c5ddc4Srjs{ 76796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 76896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DeletePerfQueryINTEL); 76996c5ddc4Srjs struct marshal_cmd_DeletePerfQueryINTEL *cmd; 77096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeletePerfQueryINTEL, cmd_size); 77196c5ddc4Srjs cmd->queryHandle = queryHandle; 77296c5ddc4Srjs} 77396c5ddc4Srjs 77496c5ddc4Srjs 77596c5ddc4Srjs/* BeginPerfQueryINTEL: marshalled asynchronously */ 77696c5ddc4Srjsstruct marshal_cmd_BeginPerfQueryINTEL 77796c5ddc4Srjs{ 77896c5ddc4Srjs struct marshal_cmd_base cmd_base; 77996c5ddc4Srjs GLuint queryHandle; 78096c5ddc4Srjs}; 78196c5ddc4Srjsuint32_t 78296c5ddc4Srjs_mesa_unmarshal_BeginPerfQueryINTEL(struct gl_context *ctx, const struct marshal_cmd_BeginPerfQueryINTEL *cmd, const uint64_t *last) 78396c5ddc4Srjs{ 78496c5ddc4Srjs GLuint queryHandle = cmd->queryHandle; 78596c5ddc4Srjs CALL_BeginPerfQueryINTEL(ctx->CurrentServerDispatch, (queryHandle)); 78696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BeginPerfQueryINTEL), 8) / 8); 78796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 78896c5ddc4Srjs return cmd_size; 78996c5ddc4Srjs} 79096c5ddc4Srjsvoid GLAPIENTRY 79196c5ddc4Srjs_mesa_marshal_BeginPerfQueryINTEL(GLuint queryHandle) 79296c5ddc4Srjs{ 79396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 79496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BeginPerfQueryINTEL); 79596c5ddc4Srjs struct marshal_cmd_BeginPerfQueryINTEL *cmd; 79696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BeginPerfQueryINTEL, cmd_size); 79796c5ddc4Srjs cmd->queryHandle = queryHandle; 79896c5ddc4Srjs} 79996c5ddc4Srjs 80096c5ddc4Srjs 80196c5ddc4Srjs/* EndPerfQueryINTEL: marshalled asynchronously */ 80296c5ddc4Srjsstruct marshal_cmd_EndPerfQueryINTEL 80396c5ddc4Srjs{ 80496c5ddc4Srjs struct marshal_cmd_base cmd_base; 80596c5ddc4Srjs GLuint queryHandle; 80696c5ddc4Srjs}; 80796c5ddc4Srjsuint32_t 80896c5ddc4Srjs_mesa_unmarshal_EndPerfQueryINTEL(struct gl_context *ctx, const struct marshal_cmd_EndPerfQueryINTEL *cmd, const uint64_t *last) 80996c5ddc4Srjs{ 81096c5ddc4Srjs GLuint queryHandle = cmd->queryHandle; 81196c5ddc4Srjs CALL_EndPerfQueryINTEL(ctx->CurrentServerDispatch, (queryHandle)); 81296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_EndPerfQueryINTEL), 8) / 8); 81396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 81496c5ddc4Srjs return cmd_size; 81596c5ddc4Srjs} 81696c5ddc4Srjsvoid GLAPIENTRY 81796c5ddc4Srjs_mesa_marshal_EndPerfQueryINTEL(GLuint queryHandle) 81896c5ddc4Srjs{ 81996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 82096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_EndPerfQueryINTEL); 82196c5ddc4Srjs struct marshal_cmd_EndPerfQueryINTEL *cmd; 82296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_EndPerfQueryINTEL, cmd_size); 82396c5ddc4Srjs cmd->queryHandle = queryHandle; 82496c5ddc4Srjs} 82596c5ddc4Srjs 82696c5ddc4Srjs 82796c5ddc4Srjs/* GetPerfQueryDataINTEL: marshalled synchronously */ 82896c5ddc4Srjsvoid GLAPIENTRY 82996c5ddc4Srjs_mesa_marshal_GetPerfQueryDataINTEL(GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid * data, GLuint * bytesWritten) 83096c5ddc4Srjs{ 83196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 83296c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetPerfQueryDataINTEL"); 83396c5ddc4Srjs CALL_GetPerfQueryDataINTEL(ctx->CurrentServerDispatch, (queryHandle, flags, dataSize, data, bytesWritten)); 83496c5ddc4Srjs} 83596c5ddc4Srjs 83696c5ddc4Srjs 83796c5ddc4Srjs/* AlphaToCoverageDitherControlNV: marshalled asynchronously */ 83896c5ddc4Srjsstruct marshal_cmd_AlphaToCoverageDitherControlNV 83996c5ddc4Srjs{ 84096c5ddc4Srjs struct marshal_cmd_base cmd_base; 84196c5ddc4Srjs GLenum mode; 84296c5ddc4Srjs}; 84396c5ddc4Srjsuint32_t 84496c5ddc4Srjs_mesa_unmarshal_AlphaToCoverageDitherControlNV(struct gl_context *ctx, const struct marshal_cmd_AlphaToCoverageDitherControlNV *cmd, const uint64_t *last) 84596c5ddc4Srjs{ 84696c5ddc4Srjs GLenum mode = cmd->mode; 84796c5ddc4Srjs CALL_AlphaToCoverageDitherControlNV(ctx->CurrentServerDispatch, (mode)); 84896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_AlphaToCoverageDitherControlNV), 8) / 8); 84996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 85096c5ddc4Srjs return cmd_size; 85196c5ddc4Srjs} 85296c5ddc4Srjsvoid GLAPIENTRY 85396c5ddc4Srjs_mesa_marshal_AlphaToCoverageDitherControlNV(GLenum mode) 85496c5ddc4Srjs{ 85596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 85696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_AlphaToCoverageDitherControlNV); 85796c5ddc4Srjs struct marshal_cmd_AlphaToCoverageDitherControlNV *cmd; 85896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_AlphaToCoverageDitherControlNV, cmd_size); 85996c5ddc4Srjs cmd->mode = mode; 86096c5ddc4Srjs} 86196c5ddc4Srjs 86296c5ddc4Srjs 86396c5ddc4Srjs/* PolygonOffsetClampEXT: marshalled asynchronously */ 86496c5ddc4Srjsstruct marshal_cmd_PolygonOffsetClampEXT 86596c5ddc4Srjs{ 86696c5ddc4Srjs struct marshal_cmd_base cmd_base; 86796c5ddc4Srjs GLfloat factor; 86896c5ddc4Srjs GLfloat units; 86996c5ddc4Srjs GLfloat clamp; 87096c5ddc4Srjs}; 87196c5ddc4Srjsuint32_t 87296c5ddc4Srjs_mesa_unmarshal_PolygonOffsetClampEXT(struct gl_context *ctx, const struct marshal_cmd_PolygonOffsetClampEXT *cmd, const uint64_t *last) 87396c5ddc4Srjs{ 87496c5ddc4Srjs GLfloat factor = cmd->factor; 87596c5ddc4Srjs GLfloat units = cmd->units; 87696c5ddc4Srjs GLfloat clamp = cmd->clamp; 87796c5ddc4Srjs CALL_PolygonOffsetClampEXT(ctx->CurrentServerDispatch, (factor, units, clamp)); 87896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PolygonOffsetClampEXT), 8) / 8); 87996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 88096c5ddc4Srjs return cmd_size; 88196c5ddc4Srjs} 88296c5ddc4Srjsvoid GLAPIENTRY 88396c5ddc4Srjs_mesa_marshal_PolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp) 88496c5ddc4Srjs{ 88596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 88696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PolygonOffsetClampEXT); 88796c5ddc4Srjs struct marshal_cmd_PolygonOffsetClampEXT *cmd; 88896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PolygonOffsetClampEXT, cmd_size); 88996c5ddc4Srjs cmd->factor = factor; 89096c5ddc4Srjs cmd->units = units; 89196c5ddc4Srjs cmd->clamp = clamp; 89296c5ddc4Srjs} 89396c5ddc4Srjs 89496c5ddc4Srjs 89596c5ddc4Srjs/* WindowRectanglesEXT: marshalled asynchronously */ 89696c5ddc4Srjsstruct marshal_cmd_WindowRectanglesEXT 89796c5ddc4Srjs{ 89896c5ddc4Srjs struct marshal_cmd_base cmd_base; 89996c5ddc4Srjs GLenum mode; 90096c5ddc4Srjs GLsizei count; 90196c5ddc4Srjs /* Next safe_mul((4 * count), 1 * sizeof(GLint)) bytes are GLint box[(4 * count)] */ 90296c5ddc4Srjs}; 90396c5ddc4Srjsuint32_t 90496c5ddc4Srjs_mesa_unmarshal_WindowRectanglesEXT(struct gl_context *ctx, const struct marshal_cmd_WindowRectanglesEXT *cmd, const uint64_t *last) 90596c5ddc4Srjs{ 90696c5ddc4Srjs GLenum mode = cmd->mode; 90796c5ddc4Srjs GLsizei count = cmd->count; 90896c5ddc4Srjs GLint * box; 90996c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 91096c5ddc4Srjs box = (GLint *) variable_data; 91196c5ddc4Srjs CALL_WindowRectanglesEXT(ctx->CurrentServerDispatch, (mode, count, box)); 91296c5ddc4Srjs return cmd->cmd_base.cmd_size; 91396c5ddc4Srjs} 91496c5ddc4Srjsvoid GLAPIENTRY 91596c5ddc4Srjs_mesa_marshal_WindowRectanglesEXT(GLenum mode, GLsizei count, const GLint * box) 91696c5ddc4Srjs{ 91796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 91896c5ddc4Srjs int box_size = safe_mul((4 * count), 1 * sizeof(GLint)); 91996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_WindowRectanglesEXT) + box_size; 92096c5ddc4Srjs struct marshal_cmd_WindowRectanglesEXT *cmd; 92196c5ddc4Srjs if (unlikely(box_size < 0 || (box_size > 0 && !box) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 92296c5ddc4Srjs _mesa_glthread_finish_before(ctx, "WindowRectanglesEXT"); 92396c5ddc4Srjs CALL_WindowRectanglesEXT(ctx->CurrentServerDispatch, (mode, count, box)); 92496c5ddc4Srjs return; 92596c5ddc4Srjs } 92696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_WindowRectanglesEXT, cmd_size); 92796c5ddc4Srjs cmd->mode = mode; 92896c5ddc4Srjs cmd->count = count; 92996c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 93096c5ddc4Srjs memcpy(variable_data, box, box_size); 93196c5ddc4Srjs} 93296c5ddc4Srjs 93396c5ddc4Srjs 93496c5ddc4Srjs/* FramebufferFetchBarrierEXT: marshalled asynchronously */ 93596c5ddc4Srjsstruct marshal_cmd_FramebufferFetchBarrierEXT 93696c5ddc4Srjs{ 93796c5ddc4Srjs struct marshal_cmd_base cmd_base; 93896c5ddc4Srjs}; 93996c5ddc4Srjsuint32_t 94096c5ddc4Srjs_mesa_unmarshal_FramebufferFetchBarrierEXT(struct gl_context *ctx, const struct marshal_cmd_FramebufferFetchBarrierEXT *cmd, const uint64_t *last) 94196c5ddc4Srjs{ 94296c5ddc4Srjs CALL_FramebufferFetchBarrierEXT(ctx->CurrentServerDispatch, ()); 94396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferFetchBarrierEXT), 8) / 8); 94496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 94596c5ddc4Srjs return cmd_size; 94696c5ddc4Srjs} 94796c5ddc4Srjsvoid GLAPIENTRY 94896c5ddc4Srjs_mesa_marshal_FramebufferFetchBarrierEXT(void) 94996c5ddc4Srjs{ 95096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 95196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_FramebufferFetchBarrierEXT); 95296c5ddc4Srjs struct marshal_cmd_FramebufferFetchBarrierEXT *cmd; 95396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferFetchBarrierEXT, cmd_size); 95496c5ddc4Srjs (void) cmd; 95596c5ddc4Srjs} 95696c5ddc4Srjs 95796c5ddc4Srjs 95896c5ddc4Srjs/* RenderbufferStorageMultisampleAdvancedAMD: marshalled asynchronously */ 95996c5ddc4Srjsstruct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD 96096c5ddc4Srjs{ 96196c5ddc4Srjs struct marshal_cmd_base cmd_base; 96296c5ddc4Srjs GLenum target; 96396c5ddc4Srjs GLsizei samples; 96496c5ddc4Srjs GLsizei storageSamples; 96596c5ddc4Srjs GLenum internalformat; 96696c5ddc4Srjs GLsizei width; 96796c5ddc4Srjs GLsizei height; 96896c5ddc4Srjs}; 96996c5ddc4Srjsuint32_t 97096c5ddc4Srjs_mesa_unmarshal_RenderbufferStorageMultisampleAdvancedAMD(struct gl_context *ctx, const struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD *cmd, const uint64_t *last) 97196c5ddc4Srjs{ 97296c5ddc4Srjs GLenum target = cmd->target; 97396c5ddc4Srjs GLsizei samples = cmd->samples; 97496c5ddc4Srjs GLsizei storageSamples = cmd->storageSamples; 97596c5ddc4Srjs GLenum internalformat = cmd->internalformat; 97696c5ddc4Srjs GLsizei width = cmd->width; 97796c5ddc4Srjs GLsizei height = cmd->height; 97896c5ddc4Srjs CALL_RenderbufferStorageMultisampleAdvancedAMD(ctx->CurrentServerDispatch, (target, samples, storageSamples, internalformat, width, height)); 97996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD), 8) / 8); 98096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 98196c5ddc4Srjs return cmd_size; 98296c5ddc4Srjs} 98396c5ddc4Srjsvoid GLAPIENTRY 98496c5ddc4Srjs_mesa_marshal_RenderbufferStorageMultisampleAdvancedAMD(GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height) 98596c5ddc4Srjs{ 98696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 98796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD); 98896c5ddc4Srjs struct marshal_cmd_RenderbufferStorageMultisampleAdvancedAMD *cmd; 98996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_RenderbufferStorageMultisampleAdvancedAMD, cmd_size); 99096c5ddc4Srjs cmd->target = target; 99196c5ddc4Srjs cmd->samples = samples; 99296c5ddc4Srjs cmd->storageSamples = storageSamples; 99396c5ddc4Srjs cmd->internalformat = internalformat; 99496c5ddc4Srjs cmd->width = width; 99596c5ddc4Srjs cmd->height = height; 99696c5ddc4Srjs} 99796c5ddc4Srjs 99896c5ddc4Srjs 99996c5ddc4Srjs/* NamedRenderbufferStorageMultisampleAdvancedAMD: marshalled asynchronously */ 100096c5ddc4Srjsstruct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD 100196c5ddc4Srjs{ 100296c5ddc4Srjs struct marshal_cmd_base cmd_base; 100396c5ddc4Srjs GLuint renderbuffer; 100496c5ddc4Srjs GLsizei samples; 100596c5ddc4Srjs GLsizei storageSamples; 100696c5ddc4Srjs GLenum internalformat; 100796c5ddc4Srjs GLsizei width; 100896c5ddc4Srjs GLsizei height; 100996c5ddc4Srjs}; 101096c5ddc4Srjsuint32_t 101196c5ddc4Srjs_mesa_unmarshal_NamedRenderbufferStorageMultisampleAdvancedAMD(struct gl_context *ctx, const struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD *cmd, const uint64_t *last) 101296c5ddc4Srjs{ 101396c5ddc4Srjs GLuint renderbuffer = cmd->renderbuffer; 101496c5ddc4Srjs GLsizei samples = cmd->samples; 101596c5ddc4Srjs GLsizei storageSamples = cmd->storageSamples; 101696c5ddc4Srjs GLenum internalformat = cmd->internalformat; 101796c5ddc4Srjs GLsizei width = cmd->width; 101896c5ddc4Srjs GLsizei height = cmd->height; 101996c5ddc4Srjs CALL_NamedRenderbufferStorageMultisampleAdvancedAMD(ctx->CurrentServerDispatch, (renderbuffer, samples, storageSamples, internalformat, width, height)); 102096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD), 8) / 8); 102196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 102296c5ddc4Srjs return cmd_size; 102396c5ddc4Srjs} 102496c5ddc4Srjsvoid GLAPIENTRY 102596c5ddc4Srjs_mesa_marshal_NamedRenderbufferStorageMultisampleAdvancedAMD(GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height) 102696c5ddc4Srjs{ 102796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 102896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD); 102996c5ddc4Srjs struct marshal_cmd_NamedRenderbufferStorageMultisampleAdvancedAMD *cmd; 103096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedRenderbufferStorageMultisampleAdvancedAMD, cmd_size); 103196c5ddc4Srjs cmd->renderbuffer = renderbuffer; 103296c5ddc4Srjs cmd->samples = samples; 103396c5ddc4Srjs cmd->storageSamples = storageSamples; 103496c5ddc4Srjs cmd->internalformat = internalformat; 103596c5ddc4Srjs cmd->width = width; 103696c5ddc4Srjs cmd->height = height; 103796c5ddc4Srjs} 103896c5ddc4Srjs 103996c5ddc4Srjs 104096c5ddc4Srjs/* StencilFuncSeparateATI: marshalled asynchronously */ 104196c5ddc4Srjsstruct marshal_cmd_StencilFuncSeparateATI 104296c5ddc4Srjs{ 104396c5ddc4Srjs struct marshal_cmd_base cmd_base; 104496c5ddc4Srjs GLenum frontfunc; 104596c5ddc4Srjs GLenum backfunc; 104696c5ddc4Srjs GLint ref; 104796c5ddc4Srjs GLuint mask; 104896c5ddc4Srjs}; 104996c5ddc4Srjsuint32_t 105096c5ddc4Srjs_mesa_unmarshal_StencilFuncSeparateATI(struct gl_context *ctx, const struct marshal_cmd_StencilFuncSeparateATI *cmd, const uint64_t *last) 105196c5ddc4Srjs{ 105296c5ddc4Srjs GLenum frontfunc = cmd->frontfunc; 105396c5ddc4Srjs GLenum backfunc = cmd->backfunc; 105496c5ddc4Srjs GLint ref = cmd->ref; 105596c5ddc4Srjs GLuint mask = cmd->mask; 105696c5ddc4Srjs CALL_StencilFuncSeparateATI(ctx->CurrentServerDispatch, (frontfunc, backfunc, ref, mask)); 105796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_StencilFuncSeparateATI), 8) / 8); 105896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 105996c5ddc4Srjs return cmd_size; 106096c5ddc4Srjs} 106196c5ddc4Srjsvoid GLAPIENTRY 106296c5ddc4Srjs_mesa_marshal_StencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) 106396c5ddc4Srjs{ 106496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 106596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_StencilFuncSeparateATI); 106696c5ddc4Srjs struct marshal_cmd_StencilFuncSeparateATI *cmd; 106796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_StencilFuncSeparateATI, cmd_size); 106896c5ddc4Srjs cmd->frontfunc = frontfunc; 106996c5ddc4Srjs cmd->backfunc = backfunc; 107096c5ddc4Srjs cmd->ref = ref; 107196c5ddc4Srjs cmd->mask = mask; 107296c5ddc4Srjs} 107396c5ddc4Srjs 107496c5ddc4Srjs 107596c5ddc4Srjs/* ProgramEnvParameters4fvEXT: marshalled asynchronously */ 107696c5ddc4Srjsstruct marshal_cmd_ProgramEnvParameters4fvEXT 107796c5ddc4Srjs{ 107896c5ddc4Srjs struct marshal_cmd_base cmd_base; 107996c5ddc4Srjs GLenum target; 108096c5ddc4Srjs GLuint index; 108196c5ddc4Srjs GLsizei count; 108296c5ddc4Srjs GLfloat params[4]; 108396c5ddc4Srjs}; 108496c5ddc4Srjsuint32_t 108596c5ddc4Srjs_mesa_unmarshal_ProgramEnvParameters4fvEXT(struct gl_context *ctx, const struct marshal_cmd_ProgramEnvParameters4fvEXT *cmd, const uint64_t *last) 108696c5ddc4Srjs{ 108796c5ddc4Srjs GLenum target = cmd->target; 108896c5ddc4Srjs GLuint index = cmd->index; 108996c5ddc4Srjs GLsizei count = cmd->count; 109096c5ddc4Srjs const GLfloat * params = cmd->params; 109196c5ddc4Srjs CALL_ProgramEnvParameters4fvEXT(ctx->CurrentServerDispatch, (target, index, count, params)); 109296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ProgramEnvParameters4fvEXT), 8) / 8); 109396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 109496c5ddc4Srjs return cmd_size; 109596c5ddc4Srjs} 109696c5ddc4Srjsvoid GLAPIENTRY 109796c5ddc4Srjs_mesa_marshal_ProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat * params) 109896c5ddc4Srjs{ 109996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 110096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ProgramEnvParameters4fvEXT); 110196c5ddc4Srjs struct marshal_cmd_ProgramEnvParameters4fvEXT *cmd; 110296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ProgramEnvParameters4fvEXT, cmd_size); 110396c5ddc4Srjs cmd->target = target; 110496c5ddc4Srjs cmd->index = index; 110596c5ddc4Srjs cmd->count = count; 110696c5ddc4Srjs memcpy(cmd->params, params, 4 * sizeof(GLfloat)); 110796c5ddc4Srjs} 110896c5ddc4Srjs 110996c5ddc4Srjs 111096c5ddc4Srjs/* ProgramLocalParameters4fvEXT: marshalled asynchronously */ 111196c5ddc4Srjsstruct marshal_cmd_ProgramLocalParameters4fvEXT 111296c5ddc4Srjs{ 111396c5ddc4Srjs struct marshal_cmd_base cmd_base; 111496c5ddc4Srjs GLenum target; 111596c5ddc4Srjs GLuint index; 111696c5ddc4Srjs GLsizei count; 111796c5ddc4Srjs GLfloat params[4]; 111896c5ddc4Srjs}; 111996c5ddc4Srjsuint32_t 112096c5ddc4Srjs_mesa_unmarshal_ProgramLocalParameters4fvEXT(struct gl_context *ctx, const struct marshal_cmd_ProgramLocalParameters4fvEXT *cmd, const uint64_t *last) 112196c5ddc4Srjs{ 112296c5ddc4Srjs GLenum target = cmd->target; 112396c5ddc4Srjs GLuint index = cmd->index; 112496c5ddc4Srjs GLsizei count = cmd->count; 112596c5ddc4Srjs const GLfloat * params = cmd->params; 112696c5ddc4Srjs CALL_ProgramLocalParameters4fvEXT(ctx->CurrentServerDispatch, (target, index, count, params)); 112796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ProgramLocalParameters4fvEXT), 8) / 8); 112896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 112996c5ddc4Srjs return cmd_size; 113096c5ddc4Srjs} 113196c5ddc4Srjsvoid GLAPIENTRY 113296c5ddc4Srjs_mesa_marshal_ProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat * params) 113396c5ddc4Srjs{ 113496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 113596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ProgramLocalParameters4fvEXT); 113696c5ddc4Srjs struct marshal_cmd_ProgramLocalParameters4fvEXT *cmd; 113796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ProgramLocalParameters4fvEXT, cmd_size); 113896c5ddc4Srjs cmd->target = target; 113996c5ddc4Srjs cmd->index = index; 114096c5ddc4Srjs cmd->count = count; 114196c5ddc4Srjs memcpy(cmd->params, params, 4 * sizeof(GLfloat)); 114296c5ddc4Srjs} 114396c5ddc4Srjs 114496c5ddc4Srjs 114596c5ddc4Srjs/* InternalBufferSubDataCopyMESA: marshalled asynchronously */ 114696c5ddc4Srjsstruct marshal_cmd_InternalBufferSubDataCopyMESA 114796c5ddc4Srjs{ 114896c5ddc4Srjs struct marshal_cmd_base cmd_base; 114996c5ddc4Srjs GLboolean named; 115096c5ddc4Srjs GLboolean ext_dsa; 115196c5ddc4Srjs GLuint srcOffset; 115296c5ddc4Srjs GLuint dstTargetOrName; 115396c5ddc4Srjs GLintptr srcBuffer; 115496c5ddc4Srjs GLintptr dstOffset; 115596c5ddc4Srjs GLsizeiptr size; 115696c5ddc4Srjs}; 115796c5ddc4Srjsuint32_t 115896c5ddc4Srjs_mesa_unmarshal_InternalBufferSubDataCopyMESA(struct gl_context *ctx, const struct marshal_cmd_InternalBufferSubDataCopyMESA *cmd, const uint64_t *last) 115996c5ddc4Srjs{ 116096c5ddc4Srjs GLintptr srcBuffer = cmd->srcBuffer; 116196c5ddc4Srjs GLuint srcOffset = cmd->srcOffset; 116296c5ddc4Srjs GLuint dstTargetOrName = cmd->dstTargetOrName; 116396c5ddc4Srjs GLintptr dstOffset = cmd->dstOffset; 116496c5ddc4Srjs GLsizeiptr size = cmd->size; 116596c5ddc4Srjs GLboolean named = cmd->named; 116696c5ddc4Srjs GLboolean ext_dsa = cmd->ext_dsa; 116796c5ddc4Srjs CALL_InternalBufferSubDataCopyMESA(ctx->CurrentServerDispatch, (srcBuffer, srcOffset, dstTargetOrName, dstOffset, size, named, ext_dsa)); 116896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_InternalBufferSubDataCopyMESA), 8) / 8); 116996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 117096c5ddc4Srjs return cmd_size; 117196c5ddc4Srjs} 117296c5ddc4Srjsvoid GLAPIENTRY 117396c5ddc4Srjs_mesa_marshal_InternalBufferSubDataCopyMESA(GLintptr srcBuffer, GLuint srcOffset, GLuint dstTargetOrName, GLintptr dstOffset, GLsizeiptr size, GLboolean named, GLboolean ext_dsa) 117496c5ddc4Srjs{ 117596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 117696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_InternalBufferSubDataCopyMESA); 117796c5ddc4Srjs struct marshal_cmd_InternalBufferSubDataCopyMESA *cmd; 117896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_InternalBufferSubDataCopyMESA, cmd_size); 117996c5ddc4Srjs cmd->srcBuffer = srcBuffer; 118096c5ddc4Srjs cmd->srcOffset = srcOffset; 118196c5ddc4Srjs cmd->dstTargetOrName = dstTargetOrName; 118296c5ddc4Srjs cmd->dstOffset = dstOffset; 118396c5ddc4Srjs cmd->size = size; 118496c5ddc4Srjs cmd->named = named; 118596c5ddc4Srjs cmd->ext_dsa = ext_dsa; 118696c5ddc4Srjs} 118796c5ddc4Srjs 118896c5ddc4Srjs 118996c5ddc4Srjs/* InternalSetError: marshalled asynchronously */ 119096c5ddc4Srjsstruct marshal_cmd_InternalSetError 119196c5ddc4Srjs{ 119296c5ddc4Srjs struct marshal_cmd_base cmd_base; 119396c5ddc4Srjs GLenum error; 119496c5ddc4Srjs}; 119596c5ddc4Srjsuint32_t 119696c5ddc4Srjs_mesa_unmarshal_InternalSetError(struct gl_context *ctx, const struct marshal_cmd_InternalSetError *cmd, const uint64_t *last) 119796c5ddc4Srjs{ 119896c5ddc4Srjs GLenum error = cmd->error; 119996c5ddc4Srjs CALL_InternalSetError(ctx->CurrentServerDispatch, (error)); 120096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_InternalSetError), 8) / 8); 120196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 120296c5ddc4Srjs return cmd_size; 120396c5ddc4Srjs} 120496c5ddc4Srjsvoid GLAPIENTRY 120596c5ddc4Srjs_mesa_marshal_InternalSetError(GLenum error) 120696c5ddc4Srjs{ 120796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 120896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_InternalSetError); 120996c5ddc4Srjs struct marshal_cmd_InternalSetError *cmd; 121096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_InternalSetError, cmd_size); 121196c5ddc4Srjs cmd->error = error; 121296c5ddc4Srjs} 121396c5ddc4Srjs 121496c5ddc4Srjs 121596c5ddc4Srjs/* EGLImageTargetTexture2DOES: marshalled synchronously */ 121696c5ddc4Srjsvoid GLAPIENTRY 121796c5ddc4Srjs_mesa_marshal_EGLImageTargetTexture2DOES(GLenum target, GLvoid * writeOffset) 121896c5ddc4Srjs{ 121996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 122096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "EGLImageTargetTexture2DOES"); 122196c5ddc4Srjs CALL_EGLImageTargetTexture2DOES(ctx->CurrentServerDispatch, (target, writeOffset)); 122296c5ddc4Srjs} 122396c5ddc4Srjs 122496c5ddc4Srjs 122596c5ddc4Srjs/* EGLImageTargetRenderbufferStorageOES: marshalled synchronously */ 122696c5ddc4Srjsvoid GLAPIENTRY 122796c5ddc4Srjs_mesa_marshal_EGLImageTargetRenderbufferStorageOES(GLenum target, GLvoid * writeOffset) 122896c5ddc4Srjs{ 122996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 123096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "EGLImageTargetRenderbufferStorageOES"); 123196c5ddc4Srjs CALL_EGLImageTargetRenderbufferStorageOES(ctx->CurrentServerDispatch, (target, writeOffset)); 123296c5ddc4Srjs} 123396c5ddc4Srjs 123496c5ddc4Srjs 123596c5ddc4Srjs/* EGLImageTargetTexStorageEXT: marshalled synchronously */ 123696c5ddc4Srjsvoid GLAPIENTRY 123796c5ddc4Srjs_mesa_marshal_EGLImageTargetTexStorageEXT(GLenum target, GLvoid * image, const GLint * attrib_list) 123896c5ddc4Srjs{ 123996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 124096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "EGLImageTargetTexStorageEXT"); 124196c5ddc4Srjs CALL_EGLImageTargetTexStorageEXT(ctx->CurrentServerDispatch, (target, image, attrib_list)); 124296c5ddc4Srjs} 124396c5ddc4Srjs 124496c5ddc4Srjs 124596c5ddc4Srjs/* EGLImageTargetTextureStorageEXT: marshalled synchronously */ 124696c5ddc4Srjsvoid GLAPIENTRY 124796c5ddc4Srjs_mesa_marshal_EGLImageTargetTextureStorageEXT(GLuint texture, GLvoid * image, const GLint * attrib_list) 124896c5ddc4Srjs{ 124996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 125096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "EGLImageTargetTextureStorageEXT"); 125196c5ddc4Srjs CALL_EGLImageTargetTextureStorageEXT(ctx->CurrentServerDispatch, (texture, image, attrib_list)); 125296c5ddc4Srjs} 125396c5ddc4Srjs 125496c5ddc4Srjs 125596c5ddc4Srjs/* ClearColorIiEXT: marshalled asynchronously */ 125696c5ddc4Srjsstruct marshal_cmd_ClearColorIiEXT 125796c5ddc4Srjs{ 125896c5ddc4Srjs struct marshal_cmd_base cmd_base; 125996c5ddc4Srjs GLint r; 126096c5ddc4Srjs GLint g; 126196c5ddc4Srjs GLint b; 126296c5ddc4Srjs GLint a; 126396c5ddc4Srjs}; 126496c5ddc4Srjsuint32_t 126596c5ddc4Srjs_mesa_unmarshal_ClearColorIiEXT(struct gl_context *ctx, const struct marshal_cmd_ClearColorIiEXT *cmd, const uint64_t *last) 126696c5ddc4Srjs{ 126796c5ddc4Srjs GLint r = cmd->r; 126896c5ddc4Srjs GLint g = cmd->g; 126996c5ddc4Srjs GLint b = cmd->b; 127096c5ddc4Srjs GLint a = cmd->a; 127196c5ddc4Srjs CALL_ClearColorIiEXT(ctx->CurrentServerDispatch, (r, g, b, a)); 127296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearColorIiEXT), 8) / 8); 127396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 127496c5ddc4Srjs return cmd_size; 127596c5ddc4Srjs} 127696c5ddc4Srjsvoid GLAPIENTRY 127796c5ddc4Srjs_mesa_marshal_ClearColorIiEXT(GLint r, GLint g, GLint b, GLint a) 127896c5ddc4Srjs{ 127996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 128096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearColorIiEXT); 128196c5ddc4Srjs struct marshal_cmd_ClearColorIiEXT *cmd; 128296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearColorIiEXT, cmd_size); 128396c5ddc4Srjs cmd->r = r; 128496c5ddc4Srjs cmd->g = g; 128596c5ddc4Srjs cmd->b = b; 128696c5ddc4Srjs cmd->a = a; 128796c5ddc4Srjs} 128896c5ddc4Srjs 128996c5ddc4Srjs 129096c5ddc4Srjs/* ClearColorIuiEXT: marshalled asynchronously */ 129196c5ddc4Srjsstruct marshal_cmd_ClearColorIuiEXT 129296c5ddc4Srjs{ 129396c5ddc4Srjs struct marshal_cmd_base cmd_base; 129496c5ddc4Srjs GLuint r; 129596c5ddc4Srjs GLuint g; 129696c5ddc4Srjs GLuint b; 129796c5ddc4Srjs GLuint a; 129896c5ddc4Srjs}; 129996c5ddc4Srjsuint32_t 130096c5ddc4Srjs_mesa_unmarshal_ClearColorIuiEXT(struct gl_context *ctx, const struct marshal_cmd_ClearColorIuiEXT *cmd, const uint64_t *last) 130196c5ddc4Srjs{ 130296c5ddc4Srjs GLuint r = cmd->r; 130396c5ddc4Srjs GLuint g = cmd->g; 130496c5ddc4Srjs GLuint b = cmd->b; 130596c5ddc4Srjs GLuint a = cmd->a; 130696c5ddc4Srjs CALL_ClearColorIuiEXT(ctx->CurrentServerDispatch, (r, g, b, a)); 130796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearColorIuiEXT), 8) / 8); 130896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 130996c5ddc4Srjs return cmd_size; 131096c5ddc4Srjs} 131196c5ddc4Srjsvoid GLAPIENTRY 131296c5ddc4Srjs_mesa_marshal_ClearColorIuiEXT(GLuint r, GLuint g, GLuint b, GLuint a) 131396c5ddc4Srjs{ 131496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 131596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearColorIuiEXT); 131696c5ddc4Srjs struct marshal_cmd_ClearColorIuiEXT *cmd; 131796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearColorIuiEXT, cmd_size); 131896c5ddc4Srjs cmd->r = r; 131996c5ddc4Srjs cmd->g = g; 132096c5ddc4Srjs cmd->b = b; 132196c5ddc4Srjs cmd->a = a; 132296c5ddc4Srjs} 132396c5ddc4Srjs 132496c5ddc4Srjs 132596c5ddc4Srjs/* TexParameterIiv: marshalled asynchronously */ 132696c5ddc4Srjsstruct marshal_cmd_TexParameterIiv 132796c5ddc4Srjs{ 132896c5ddc4Srjs struct marshal_cmd_base cmd_base; 132996c5ddc4Srjs GLenum target; 133096c5ddc4Srjs GLenum pname; 133196c5ddc4Srjs /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_tex_param_enum_to_count(pname)] */ 133296c5ddc4Srjs}; 133396c5ddc4Srjsuint32_t 133496c5ddc4Srjs_mesa_unmarshal_TexParameterIiv(struct gl_context *ctx, const struct marshal_cmd_TexParameterIiv *cmd, const uint64_t *last) 133596c5ddc4Srjs{ 133696c5ddc4Srjs GLenum target = cmd->target; 133796c5ddc4Srjs GLenum pname = cmd->pname; 133896c5ddc4Srjs GLint * params; 133996c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 134096c5ddc4Srjs params = (GLint *) variable_data; 134196c5ddc4Srjs CALL_TexParameterIiv(ctx->CurrentServerDispatch, (target, pname, params)); 134296c5ddc4Srjs return cmd->cmd_base.cmd_size; 134396c5ddc4Srjs} 134496c5ddc4Srjsvoid GLAPIENTRY 134596c5ddc4Srjs_mesa_marshal_TexParameterIiv(GLenum target, GLenum pname, const GLint * params) 134696c5ddc4Srjs{ 134796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 134896c5ddc4Srjs int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLint)); 134996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexParameterIiv) + params_size; 135096c5ddc4Srjs struct marshal_cmd_TexParameterIiv *cmd; 135196c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 135296c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TexParameterIiv"); 135396c5ddc4Srjs CALL_TexParameterIiv(ctx->CurrentServerDispatch, (target, pname, params)); 135496c5ddc4Srjs return; 135596c5ddc4Srjs } 135696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterIiv, cmd_size); 135796c5ddc4Srjs cmd->target = target; 135896c5ddc4Srjs cmd->pname = pname; 135996c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 136096c5ddc4Srjs memcpy(variable_data, params, params_size); 136196c5ddc4Srjs} 136296c5ddc4Srjs 136396c5ddc4Srjs 136496c5ddc4Srjs/* TexParameterIuiv: marshalled asynchronously */ 136596c5ddc4Srjsstruct marshal_cmd_TexParameterIuiv 136696c5ddc4Srjs{ 136796c5ddc4Srjs struct marshal_cmd_base cmd_base; 136896c5ddc4Srjs GLenum target; 136996c5ddc4Srjs GLenum pname; 137096c5ddc4Srjs /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)) bytes are GLuint params[_mesa_tex_param_enum_to_count(pname)] */ 137196c5ddc4Srjs}; 137296c5ddc4Srjsuint32_t 137396c5ddc4Srjs_mesa_unmarshal_TexParameterIuiv(struct gl_context *ctx, const struct marshal_cmd_TexParameterIuiv *cmd, const uint64_t *last) 137496c5ddc4Srjs{ 137596c5ddc4Srjs GLenum target = cmd->target; 137696c5ddc4Srjs GLenum pname = cmd->pname; 137796c5ddc4Srjs GLuint * params; 137896c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 137996c5ddc4Srjs params = (GLuint *) variable_data; 138096c5ddc4Srjs CALL_TexParameterIuiv(ctx->CurrentServerDispatch, (target, pname, params)); 138196c5ddc4Srjs return cmd->cmd_base.cmd_size; 138296c5ddc4Srjs} 138396c5ddc4Srjsvoid GLAPIENTRY 138496c5ddc4Srjs_mesa_marshal_TexParameterIuiv(GLenum target, GLenum pname, const GLuint * params) 138596c5ddc4Srjs{ 138696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 138796c5ddc4Srjs int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLuint)); 138896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexParameterIuiv) + params_size; 138996c5ddc4Srjs struct marshal_cmd_TexParameterIuiv *cmd; 139096c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 139196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TexParameterIuiv"); 139296c5ddc4Srjs CALL_TexParameterIuiv(ctx->CurrentServerDispatch, (target, pname, params)); 139396c5ddc4Srjs return; 139496c5ddc4Srjs } 139596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterIuiv, cmd_size); 139696c5ddc4Srjs cmd->target = target; 139796c5ddc4Srjs cmd->pname = pname; 139896c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 139996c5ddc4Srjs memcpy(variable_data, params, params_size); 140096c5ddc4Srjs} 140196c5ddc4Srjs 140296c5ddc4Srjs 140396c5ddc4Srjs/* GetTexParameterIiv: marshalled synchronously */ 140496c5ddc4Srjsvoid GLAPIENTRY 140596c5ddc4Srjs_mesa_marshal_GetTexParameterIiv(GLenum target, GLenum pname, GLint * params) 140696c5ddc4Srjs{ 140796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 140896c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTexParameterIiv"); 140996c5ddc4Srjs CALL_GetTexParameterIiv(ctx->CurrentServerDispatch, (target, pname, params)); 141096c5ddc4Srjs} 141196c5ddc4Srjs 141296c5ddc4Srjs 141396c5ddc4Srjs/* GetTexParameterIuiv: marshalled synchronously */ 141496c5ddc4Srjsvoid GLAPIENTRY 141596c5ddc4Srjs_mesa_marshal_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint * params) 141696c5ddc4Srjs{ 141796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 141896c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTexParameterIuiv"); 141996c5ddc4Srjs CALL_GetTexParameterIuiv(ctx->CurrentServerDispatch, (target, pname, params)); 142096c5ddc4Srjs} 142196c5ddc4Srjs 142296c5ddc4Srjs 142396c5ddc4Srjs/* VertexAttribI1iEXT: marshalled asynchronously */ 142496c5ddc4Srjsstruct marshal_cmd_VertexAttribI1iEXT 142596c5ddc4Srjs{ 142696c5ddc4Srjs struct marshal_cmd_base cmd_base; 142796c5ddc4Srjs GLuint index; 142896c5ddc4Srjs GLint x; 142996c5ddc4Srjs}; 143096c5ddc4Srjsuint32_t 143196c5ddc4Srjs_mesa_unmarshal_VertexAttribI1iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1iEXT *cmd, const uint64_t *last) 143296c5ddc4Srjs{ 143396c5ddc4Srjs GLuint index = cmd->index; 143496c5ddc4Srjs GLint x = cmd->x; 143596c5ddc4Srjs CALL_VertexAttribI1iEXT(ctx->CurrentServerDispatch, (index, x)); 143696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1iEXT), 8) / 8); 143796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 143896c5ddc4Srjs return cmd_size; 143996c5ddc4Srjs} 144096c5ddc4Srjsvoid GLAPIENTRY 144196c5ddc4Srjs_mesa_marshal_VertexAttribI1iEXT(GLuint index, GLint x) 144296c5ddc4Srjs{ 144396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 144496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1iEXT); 144596c5ddc4Srjs struct marshal_cmd_VertexAttribI1iEXT *cmd; 144696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1iEXT, cmd_size); 144796c5ddc4Srjs cmd->index = index; 144896c5ddc4Srjs cmd->x = x; 144996c5ddc4Srjs} 145096c5ddc4Srjs 145196c5ddc4Srjs 145296c5ddc4Srjs/* VertexAttribI2iEXT: marshalled asynchronously */ 145396c5ddc4Srjsstruct marshal_cmd_VertexAttribI2iEXT 145496c5ddc4Srjs{ 145596c5ddc4Srjs struct marshal_cmd_base cmd_base; 145696c5ddc4Srjs GLuint index; 145796c5ddc4Srjs GLint x; 145896c5ddc4Srjs GLint y; 145996c5ddc4Srjs}; 146096c5ddc4Srjsuint32_t 146196c5ddc4Srjs_mesa_unmarshal_VertexAttribI2iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2iEXT *cmd, const uint64_t *last) 146296c5ddc4Srjs{ 146396c5ddc4Srjs GLuint index = cmd->index; 146496c5ddc4Srjs GLint x = cmd->x; 146596c5ddc4Srjs GLint y = cmd->y; 146696c5ddc4Srjs CALL_VertexAttribI2iEXT(ctx->CurrentServerDispatch, (index, x, y)); 146796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2iEXT), 8) / 8); 146896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 146996c5ddc4Srjs return cmd_size; 147096c5ddc4Srjs} 147196c5ddc4Srjsvoid GLAPIENTRY 147296c5ddc4Srjs_mesa_marshal_VertexAttribI2iEXT(GLuint index, GLint x, GLint y) 147396c5ddc4Srjs{ 147496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 147596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2iEXT); 147696c5ddc4Srjs struct marshal_cmd_VertexAttribI2iEXT *cmd; 147796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2iEXT, cmd_size); 147896c5ddc4Srjs cmd->index = index; 147996c5ddc4Srjs cmd->x = x; 148096c5ddc4Srjs cmd->y = y; 148196c5ddc4Srjs} 148296c5ddc4Srjs 148396c5ddc4Srjs 148496c5ddc4Srjs/* VertexAttribI3iEXT: marshalled asynchronously */ 148596c5ddc4Srjsstruct marshal_cmd_VertexAttribI3iEXT 148696c5ddc4Srjs{ 148796c5ddc4Srjs struct marshal_cmd_base cmd_base; 148896c5ddc4Srjs GLuint index; 148996c5ddc4Srjs GLint x; 149096c5ddc4Srjs GLint y; 149196c5ddc4Srjs GLint z; 149296c5ddc4Srjs}; 149396c5ddc4Srjsuint32_t 149496c5ddc4Srjs_mesa_unmarshal_VertexAttribI3iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3iEXT *cmd, const uint64_t *last) 149596c5ddc4Srjs{ 149696c5ddc4Srjs GLuint index = cmd->index; 149796c5ddc4Srjs GLint x = cmd->x; 149896c5ddc4Srjs GLint y = cmd->y; 149996c5ddc4Srjs GLint z = cmd->z; 150096c5ddc4Srjs CALL_VertexAttribI3iEXT(ctx->CurrentServerDispatch, (index, x, y, z)); 150196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3iEXT), 8) / 8); 150296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 150396c5ddc4Srjs return cmd_size; 150496c5ddc4Srjs} 150596c5ddc4Srjsvoid GLAPIENTRY 150696c5ddc4Srjs_mesa_marshal_VertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z) 150796c5ddc4Srjs{ 150896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 150996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3iEXT); 151096c5ddc4Srjs struct marshal_cmd_VertexAttribI3iEXT *cmd; 151196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3iEXT, cmd_size); 151296c5ddc4Srjs cmd->index = index; 151396c5ddc4Srjs cmd->x = x; 151496c5ddc4Srjs cmd->y = y; 151596c5ddc4Srjs cmd->z = z; 151696c5ddc4Srjs} 151796c5ddc4Srjs 151896c5ddc4Srjs 151996c5ddc4Srjs/* VertexAttribI4iEXT: marshalled asynchronously */ 152096c5ddc4Srjsstruct marshal_cmd_VertexAttribI4iEXT 152196c5ddc4Srjs{ 152296c5ddc4Srjs struct marshal_cmd_base cmd_base; 152396c5ddc4Srjs GLuint index; 152496c5ddc4Srjs GLint x; 152596c5ddc4Srjs GLint y; 152696c5ddc4Srjs GLint z; 152796c5ddc4Srjs GLint w; 152896c5ddc4Srjs}; 152996c5ddc4Srjsuint32_t 153096c5ddc4Srjs_mesa_unmarshal_VertexAttribI4iEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4iEXT *cmd, const uint64_t *last) 153196c5ddc4Srjs{ 153296c5ddc4Srjs GLuint index = cmd->index; 153396c5ddc4Srjs GLint x = cmd->x; 153496c5ddc4Srjs GLint y = cmd->y; 153596c5ddc4Srjs GLint z = cmd->z; 153696c5ddc4Srjs GLint w = cmd->w; 153796c5ddc4Srjs CALL_VertexAttribI4iEXT(ctx->CurrentServerDispatch, (index, x, y, z, w)); 153896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4iEXT), 8) / 8); 153996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 154096c5ddc4Srjs return cmd_size; 154196c5ddc4Srjs} 154296c5ddc4Srjsvoid GLAPIENTRY 154396c5ddc4Srjs_mesa_marshal_VertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w) 154496c5ddc4Srjs{ 154596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 154696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4iEXT); 154796c5ddc4Srjs struct marshal_cmd_VertexAttribI4iEXT *cmd; 154896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4iEXT, cmd_size); 154996c5ddc4Srjs cmd->index = index; 155096c5ddc4Srjs cmd->x = x; 155196c5ddc4Srjs cmd->y = y; 155296c5ddc4Srjs cmd->z = z; 155396c5ddc4Srjs cmd->w = w; 155496c5ddc4Srjs} 155596c5ddc4Srjs 155696c5ddc4Srjs 155796c5ddc4Srjs/* VertexAttribI1uiEXT: marshalled asynchronously */ 155896c5ddc4Srjsstruct marshal_cmd_VertexAttribI1uiEXT 155996c5ddc4Srjs{ 156096c5ddc4Srjs struct marshal_cmd_base cmd_base; 156196c5ddc4Srjs GLuint index; 156296c5ddc4Srjs GLuint x; 156396c5ddc4Srjs}; 156496c5ddc4Srjsuint32_t 156596c5ddc4Srjs_mesa_unmarshal_VertexAttribI1uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1uiEXT *cmd, const uint64_t *last) 156696c5ddc4Srjs{ 156796c5ddc4Srjs GLuint index = cmd->index; 156896c5ddc4Srjs GLuint x = cmd->x; 156996c5ddc4Srjs CALL_VertexAttribI1uiEXT(ctx->CurrentServerDispatch, (index, x)); 157096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1uiEXT), 8) / 8); 157196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 157296c5ddc4Srjs return cmd_size; 157396c5ddc4Srjs} 157496c5ddc4Srjsvoid GLAPIENTRY 157596c5ddc4Srjs_mesa_marshal_VertexAttribI1uiEXT(GLuint index, GLuint x) 157696c5ddc4Srjs{ 157796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 157896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1uiEXT); 157996c5ddc4Srjs struct marshal_cmd_VertexAttribI1uiEXT *cmd; 158096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1uiEXT, cmd_size); 158196c5ddc4Srjs cmd->index = index; 158296c5ddc4Srjs cmd->x = x; 158396c5ddc4Srjs} 158496c5ddc4Srjs 158596c5ddc4Srjs 158696c5ddc4Srjs/* VertexAttribI2uiEXT: marshalled asynchronously */ 158796c5ddc4Srjsstruct marshal_cmd_VertexAttribI2uiEXT 158896c5ddc4Srjs{ 158996c5ddc4Srjs struct marshal_cmd_base cmd_base; 159096c5ddc4Srjs GLuint index; 159196c5ddc4Srjs GLuint x; 159296c5ddc4Srjs GLuint y; 159396c5ddc4Srjs}; 159496c5ddc4Srjsuint32_t 159596c5ddc4Srjs_mesa_unmarshal_VertexAttribI2uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2uiEXT *cmd, const uint64_t *last) 159696c5ddc4Srjs{ 159796c5ddc4Srjs GLuint index = cmd->index; 159896c5ddc4Srjs GLuint x = cmd->x; 159996c5ddc4Srjs GLuint y = cmd->y; 160096c5ddc4Srjs CALL_VertexAttribI2uiEXT(ctx->CurrentServerDispatch, (index, x, y)); 160196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2uiEXT), 8) / 8); 160296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 160396c5ddc4Srjs return cmd_size; 160496c5ddc4Srjs} 160596c5ddc4Srjsvoid GLAPIENTRY 160696c5ddc4Srjs_mesa_marshal_VertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y) 160796c5ddc4Srjs{ 160896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 160996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2uiEXT); 161096c5ddc4Srjs struct marshal_cmd_VertexAttribI2uiEXT *cmd; 161196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2uiEXT, cmd_size); 161296c5ddc4Srjs cmd->index = index; 161396c5ddc4Srjs cmd->x = x; 161496c5ddc4Srjs cmd->y = y; 161596c5ddc4Srjs} 161696c5ddc4Srjs 161796c5ddc4Srjs 161896c5ddc4Srjs/* VertexAttribI3uiEXT: marshalled asynchronously */ 161996c5ddc4Srjsstruct marshal_cmd_VertexAttribI3uiEXT 162096c5ddc4Srjs{ 162196c5ddc4Srjs struct marshal_cmd_base cmd_base; 162296c5ddc4Srjs GLuint index; 162396c5ddc4Srjs GLuint x; 162496c5ddc4Srjs GLuint y; 162596c5ddc4Srjs GLuint z; 162696c5ddc4Srjs}; 162796c5ddc4Srjsuint32_t 162896c5ddc4Srjs_mesa_unmarshal_VertexAttribI3uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3uiEXT *cmd, const uint64_t *last) 162996c5ddc4Srjs{ 163096c5ddc4Srjs GLuint index = cmd->index; 163196c5ddc4Srjs GLuint x = cmd->x; 163296c5ddc4Srjs GLuint y = cmd->y; 163396c5ddc4Srjs GLuint z = cmd->z; 163496c5ddc4Srjs CALL_VertexAttribI3uiEXT(ctx->CurrentServerDispatch, (index, x, y, z)); 163596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3uiEXT), 8) / 8); 163696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 163796c5ddc4Srjs return cmd_size; 163896c5ddc4Srjs} 163996c5ddc4Srjsvoid GLAPIENTRY 164096c5ddc4Srjs_mesa_marshal_VertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z) 164196c5ddc4Srjs{ 164296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 164396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3uiEXT); 164496c5ddc4Srjs struct marshal_cmd_VertexAttribI3uiEXT *cmd; 164596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3uiEXT, cmd_size); 164696c5ddc4Srjs cmd->index = index; 164796c5ddc4Srjs cmd->x = x; 164896c5ddc4Srjs cmd->y = y; 164996c5ddc4Srjs cmd->z = z; 165096c5ddc4Srjs} 165196c5ddc4Srjs 165296c5ddc4Srjs 165396c5ddc4Srjs/* VertexAttribI4uiEXT: marshalled asynchronously */ 165496c5ddc4Srjsstruct marshal_cmd_VertexAttribI4uiEXT 165596c5ddc4Srjs{ 165696c5ddc4Srjs struct marshal_cmd_base cmd_base; 165796c5ddc4Srjs GLuint index; 165896c5ddc4Srjs GLuint x; 165996c5ddc4Srjs GLuint y; 166096c5ddc4Srjs GLuint z; 166196c5ddc4Srjs GLuint w; 166296c5ddc4Srjs}; 166396c5ddc4Srjsuint32_t 166496c5ddc4Srjs_mesa_unmarshal_VertexAttribI4uiEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4uiEXT *cmd, const uint64_t *last) 166596c5ddc4Srjs{ 166696c5ddc4Srjs GLuint index = cmd->index; 166796c5ddc4Srjs GLuint x = cmd->x; 166896c5ddc4Srjs GLuint y = cmd->y; 166996c5ddc4Srjs GLuint z = cmd->z; 167096c5ddc4Srjs GLuint w = cmd->w; 167196c5ddc4Srjs CALL_VertexAttribI4uiEXT(ctx->CurrentServerDispatch, (index, x, y, z, w)); 167296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4uiEXT), 8) / 8); 167396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 167496c5ddc4Srjs return cmd_size; 167596c5ddc4Srjs} 167696c5ddc4Srjsvoid GLAPIENTRY 167796c5ddc4Srjs_mesa_marshal_VertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) 167896c5ddc4Srjs{ 167996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 168096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4uiEXT); 168196c5ddc4Srjs struct marshal_cmd_VertexAttribI4uiEXT *cmd; 168296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4uiEXT, cmd_size); 168396c5ddc4Srjs cmd->index = index; 168496c5ddc4Srjs cmd->x = x; 168596c5ddc4Srjs cmd->y = y; 168696c5ddc4Srjs cmd->z = z; 168796c5ddc4Srjs cmd->w = w; 168896c5ddc4Srjs} 168996c5ddc4Srjs 169096c5ddc4Srjs 169196c5ddc4Srjs/* VertexAttribI1iv: marshalled asynchronously */ 169296c5ddc4Srjsstruct marshal_cmd_VertexAttribI1iv 169396c5ddc4Srjs{ 169496c5ddc4Srjs struct marshal_cmd_base cmd_base; 169596c5ddc4Srjs GLuint index; 169696c5ddc4Srjs GLint v[1]; 169796c5ddc4Srjs}; 169896c5ddc4Srjsuint32_t 169996c5ddc4Srjs_mesa_unmarshal_VertexAttribI1iv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1iv *cmd, const uint64_t *last) 170096c5ddc4Srjs{ 170196c5ddc4Srjs GLuint index = cmd->index; 170296c5ddc4Srjs const GLint * v = cmd->v; 170396c5ddc4Srjs CALL_VertexAttribI1iv(ctx->CurrentServerDispatch, (index, v)); 170496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1iv), 8) / 8); 170596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 170696c5ddc4Srjs return cmd_size; 170796c5ddc4Srjs} 170896c5ddc4Srjsvoid GLAPIENTRY 170996c5ddc4Srjs_mesa_marshal_VertexAttribI1iv(GLuint index, const GLint * v) 171096c5ddc4Srjs{ 171196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 171296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1iv); 171396c5ddc4Srjs struct marshal_cmd_VertexAttribI1iv *cmd; 171496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1iv, cmd_size); 171596c5ddc4Srjs cmd->index = index; 171696c5ddc4Srjs memcpy(cmd->v, v, 1 * sizeof(GLint)); 171796c5ddc4Srjs} 171896c5ddc4Srjs 171996c5ddc4Srjs 172096c5ddc4Srjs/* VertexAttribI2ivEXT: marshalled asynchronously */ 172196c5ddc4Srjsstruct marshal_cmd_VertexAttribI2ivEXT 172296c5ddc4Srjs{ 172396c5ddc4Srjs struct marshal_cmd_base cmd_base; 172496c5ddc4Srjs GLuint index; 172596c5ddc4Srjs GLint v[2]; 172696c5ddc4Srjs}; 172796c5ddc4Srjsuint32_t 172896c5ddc4Srjs_mesa_unmarshal_VertexAttribI2ivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2ivEXT *cmd, const uint64_t *last) 172996c5ddc4Srjs{ 173096c5ddc4Srjs GLuint index = cmd->index; 173196c5ddc4Srjs const GLint * v = cmd->v; 173296c5ddc4Srjs CALL_VertexAttribI2ivEXT(ctx->CurrentServerDispatch, (index, v)); 173396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2ivEXT), 8) / 8); 173496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 173596c5ddc4Srjs return cmd_size; 173696c5ddc4Srjs} 173796c5ddc4Srjsvoid GLAPIENTRY 173896c5ddc4Srjs_mesa_marshal_VertexAttribI2ivEXT(GLuint index, const GLint * v) 173996c5ddc4Srjs{ 174096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 174196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2ivEXT); 174296c5ddc4Srjs struct marshal_cmd_VertexAttribI2ivEXT *cmd; 174396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2ivEXT, cmd_size); 174496c5ddc4Srjs cmd->index = index; 174596c5ddc4Srjs memcpy(cmd->v, v, 2 * sizeof(GLint)); 174696c5ddc4Srjs} 174796c5ddc4Srjs 174896c5ddc4Srjs 174996c5ddc4Srjs/* VertexAttribI3ivEXT: marshalled asynchronously */ 175096c5ddc4Srjsstruct marshal_cmd_VertexAttribI3ivEXT 175196c5ddc4Srjs{ 175296c5ddc4Srjs struct marshal_cmd_base cmd_base; 175396c5ddc4Srjs GLuint index; 175496c5ddc4Srjs GLint v[3]; 175596c5ddc4Srjs}; 175696c5ddc4Srjsuint32_t 175796c5ddc4Srjs_mesa_unmarshal_VertexAttribI3ivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3ivEXT *cmd, const uint64_t *last) 175896c5ddc4Srjs{ 175996c5ddc4Srjs GLuint index = cmd->index; 176096c5ddc4Srjs const GLint * v = cmd->v; 176196c5ddc4Srjs CALL_VertexAttribI3ivEXT(ctx->CurrentServerDispatch, (index, v)); 176296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3ivEXT), 8) / 8); 176396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 176496c5ddc4Srjs return cmd_size; 176596c5ddc4Srjs} 176696c5ddc4Srjsvoid GLAPIENTRY 176796c5ddc4Srjs_mesa_marshal_VertexAttribI3ivEXT(GLuint index, const GLint * v) 176896c5ddc4Srjs{ 176996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 177096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3ivEXT); 177196c5ddc4Srjs struct marshal_cmd_VertexAttribI3ivEXT *cmd; 177296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3ivEXT, cmd_size); 177396c5ddc4Srjs cmd->index = index; 177496c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLint)); 177596c5ddc4Srjs} 177696c5ddc4Srjs 177796c5ddc4Srjs 177896c5ddc4Srjs/* VertexAttribI4ivEXT: marshalled asynchronously */ 177996c5ddc4Srjsstruct marshal_cmd_VertexAttribI4ivEXT 178096c5ddc4Srjs{ 178196c5ddc4Srjs struct marshal_cmd_base cmd_base; 178296c5ddc4Srjs GLuint index; 178396c5ddc4Srjs GLint v[4]; 178496c5ddc4Srjs}; 178596c5ddc4Srjsuint32_t 178696c5ddc4Srjs_mesa_unmarshal_VertexAttribI4ivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4ivEXT *cmd, const uint64_t *last) 178796c5ddc4Srjs{ 178896c5ddc4Srjs GLuint index = cmd->index; 178996c5ddc4Srjs const GLint * v = cmd->v; 179096c5ddc4Srjs CALL_VertexAttribI4ivEXT(ctx->CurrentServerDispatch, (index, v)); 179196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4ivEXT), 8) / 8); 179296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 179396c5ddc4Srjs return cmd_size; 179496c5ddc4Srjs} 179596c5ddc4Srjsvoid GLAPIENTRY 179696c5ddc4Srjs_mesa_marshal_VertexAttribI4ivEXT(GLuint index, const GLint * v) 179796c5ddc4Srjs{ 179896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 179996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4ivEXT); 180096c5ddc4Srjs struct marshal_cmd_VertexAttribI4ivEXT *cmd; 180196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4ivEXT, cmd_size); 180296c5ddc4Srjs cmd->index = index; 180396c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLint)); 180496c5ddc4Srjs} 180596c5ddc4Srjs 180696c5ddc4Srjs 180796c5ddc4Srjs/* VertexAttribI1uiv: marshalled asynchronously */ 180896c5ddc4Srjsstruct marshal_cmd_VertexAttribI1uiv 180996c5ddc4Srjs{ 181096c5ddc4Srjs struct marshal_cmd_base cmd_base; 181196c5ddc4Srjs GLuint index; 181296c5ddc4Srjs GLuint v[1]; 181396c5ddc4Srjs}; 181496c5ddc4Srjsuint32_t 181596c5ddc4Srjs_mesa_unmarshal_VertexAttribI1uiv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI1uiv *cmd, const uint64_t *last) 181696c5ddc4Srjs{ 181796c5ddc4Srjs GLuint index = cmd->index; 181896c5ddc4Srjs const GLuint * v = cmd->v; 181996c5ddc4Srjs CALL_VertexAttribI1uiv(ctx->CurrentServerDispatch, (index, v)); 182096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI1uiv), 8) / 8); 182196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 182296c5ddc4Srjs return cmd_size; 182396c5ddc4Srjs} 182496c5ddc4Srjsvoid GLAPIENTRY 182596c5ddc4Srjs_mesa_marshal_VertexAttribI1uiv(GLuint index, const GLuint * v) 182696c5ddc4Srjs{ 182796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 182896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI1uiv); 182996c5ddc4Srjs struct marshal_cmd_VertexAttribI1uiv *cmd; 183096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI1uiv, cmd_size); 183196c5ddc4Srjs cmd->index = index; 183296c5ddc4Srjs memcpy(cmd->v, v, 1 * sizeof(GLuint)); 183396c5ddc4Srjs} 183496c5ddc4Srjs 183596c5ddc4Srjs 183696c5ddc4Srjs/* VertexAttribI2uivEXT: marshalled asynchronously */ 183796c5ddc4Srjsstruct marshal_cmd_VertexAttribI2uivEXT 183896c5ddc4Srjs{ 183996c5ddc4Srjs struct marshal_cmd_base cmd_base; 184096c5ddc4Srjs GLuint index; 184196c5ddc4Srjs GLuint v[2]; 184296c5ddc4Srjs}; 184396c5ddc4Srjsuint32_t 184496c5ddc4Srjs_mesa_unmarshal_VertexAttribI2uivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI2uivEXT *cmd, const uint64_t *last) 184596c5ddc4Srjs{ 184696c5ddc4Srjs GLuint index = cmd->index; 184796c5ddc4Srjs const GLuint * v = cmd->v; 184896c5ddc4Srjs CALL_VertexAttribI2uivEXT(ctx->CurrentServerDispatch, (index, v)); 184996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI2uivEXT), 8) / 8); 185096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 185196c5ddc4Srjs return cmd_size; 185296c5ddc4Srjs} 185396c5ddc4Srjsvoid GLAPIENTRY 185496c5ddc4Srjs_mesa_marshal_VertexAttribI2uivEXT(GLuint index, const GLuint * v) 185596c5ddc4Srjs{ 185696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 185796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI2uivEXT); 185896c5ddc4Srjs struct marshal_cmd_VertexAttribI2uivEXT *cmd; 185996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI2uivEXT, cmd_size); 186096c5ddc4Srjs cmd->index = index; 186196c5ddc4Srjs memcpy(cmd->v, v, 2 * sizeof(GLuint)); 186296c5ddc4Srjs} 186396c5ddc4Srjs 186496c5ddc4Srjs 186596c5ddc4Srjs/* VertexAttribI3uivEXT: marshalled asynchronously */ 186696c5ddc4Srjsstruct marshal_cmd_VertexAttribI3uivEXT 186796c5ddc4Srjs{ 186896c5ddc4Srjs struct marshal_cmd_base cmd_base; 186996c5ddc4Srjs GLuint index; 187096c5ddc4Srjs GLuint v[3]; 187196c5ddc4Srjs}; 187296c5ddc4Srjsuint32_t 187396c5ddc4Srjs_mesa_unmarshal_VertexAttribI3uivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI3uivEXT *cmd, const uint64_t *last) 187496c5ddc4Srjs{ 187596c5ddc4Srjs GLuint index = cmd->index; 187696c5ddc4Srjs const GLuint * v = cmd->v; 187796c5ddc4Srjs CALL_VertexAttribI3uivEXT(ctx->CurrentServerDispatch, (index, v)); 187896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI3uivEXT), 8) / 8); 187996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 188096c5ddc4Srjs return cmd_size; 188196c5ddc4Srjs} 188296c5ddc4Srjsvoid GLAPIENTRY 188396c5ddc4Srjs_mesa_marshal_VertexAttribI3uivEXT(GLuint index, const GLuint * v) 188496c5ddc4Srjs{ 188596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 188696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI3uivEXT); 188796c5ddc4Srjs struct marshal_cmd_VertexAttribI3uivEXT *cmd; 188896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI3uivEXT, cmd_size); 188996c5ddc4Srjs cmd->index = index; 189096c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLuint)); 189196c5ddc4Srjs} 189296c5ddc4Srjs 189396c5ddc4Srjs 189496c5ddc4Srjs/* VertexAttribI4uivEXT: marshalled asynchronously */ 189596c5ddc4Srjsstruct marshal_cmd_VertexAttribI4uivEXT 189696c5ddc4Srjs{ 189796c5ddc4Srjs struct marshal_cmd_base cmd_base; 189896c5ddc4Srjs GLuint index; 189996c5ddc4Srjs GLuint v[4]; 190096c5ddc4Srjs}; 190196c5ddc4Srjsuint32_t 190296c5ddc4Srjs_mesa_unmarshal_VertexAttribI4uivEXT(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4uivEXT *cmd, const uint64_t *last) 190396c5ddc4Srjs{ 190496c5ddc4Srjs GLuint index = cmd->index; 190596c5ddc4Srjs const GLuint * v = cmd->v; 190696c5ddc4Srjs CALL_VertexAttribI4uivEXT(ctx->CurrentServerDispatch, (index, v)); 190796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4uivEXT), 8) / 8); 190896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 190996c5ddc4Srjs return cmd_size; 191096c5ddc4Srjs} 191196c5ddc4Srjsvoid GLAPIENTRY 191296c5ddc4Srjs_mesa_marshal_VertexAttribI4uivEXT(GLuint index, const GLuint * v) 191396c5ddc4Srjs{ 191496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 191596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4uivEXT); 191696c5ddc4Srjs struct marshal_cmd_VertexAttribI4uivEXT *cmd; 191796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4uivEXT, cmd_size); 191896c5ddc4Srjs cmd->index = index; 191996c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLuint)); 192096c5ddc4Srjs} 192196c5ddc4Srjs 192296c5ddc4Srjs 192396c5ddc4Srjs/* VertexAttribI4bv: marshalled asynchronously */ 192496c5ddc4Srjsstruct marshal_cmd_VertexAttribI4bv 192596c5ddc4Srjs{ 192696c5ddc4Srjs struct marshal_cmd_base cmd_base; 192796c5ddc4Srjs GLuint index; 192896c5ddc4Srjs GLbyte v[4]; 192996c5ddc4Srjs}; 193096c5ddc4Srjsuint32_t 193196c5ddc4Srjs_mesa_unmarshal_VertexAttribI4bv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4bv *cmd, const uint64_t *last) 193296c5ddc4Srjs{ 193396c5ddc4Srjs GLuint index = cmd->index; 193496c5ddc4Srjs const GLbyte * v = cmd->v; 193596c5ddc4Srjs CALL_VertexAttribI4bv(ctx->CurrentServerDispatch, (index, v)); 193696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4bv), 8) / 8); 193796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 193896c5ddc4Srjs return cmd_size; 193996c5ddc4Srjs} 194096c5ddc4Srjsvoid GLAPIENTRY 194196c5ddc4Srjs_mesa_marshal_VertexAttribI4bv(GLuint index, const GLbyte * v) 194296c5ddc4Srjs{ 194396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 194496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4bv); 194596c5ddc4Srjs struct marshal_cmd_VertexAttribI4bv *cmd; 194696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4bv, cmd_size); 194796c5ddc4Srjs cmd->index = index; 194896c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLbyte)); 194996c5ddc4Srjs} 195096c5ddc4Srjs 195196c5ddc4Srjs 195296c5ddc4Srjs/* VertexAttribI4sv: marshalled asynchronously */ 195396c5ddc4Srjsstruct marshal_cmd_VertexAttribI4sv 195496c5ddc4Srjs{ 195596c5ddc4Srjs struct marshal_cmd_base cmd_base; 195696c5ddc4Srjs GLuint index; 195796c5ddc4Srjs GLshort v[4]; 195896c5ddc4Srjs}; 195996c5ddc4Srjsuint32_t 196096c5ddc4Srjs_mesa_unmarshal_VertexAttribI4sv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4sv *cmd, const uint64_t *last) 196196c5ddc4Srjs{ 196296c5ddc4Srjs GLuint index = cmd->index; 196396c5ddc4Srjs const GLshort * v = cmd->v; 196496c5ddc4Srjs CALL_VertexAttribI4sv(ctx->CurrentServerDispatch, (index, v)); 196596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4sv), 8) / 8); 196696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 196796c5ddc4Srjs return cmd_size; 196896c5ddc4Srjs} 196996c5ddc4Srjsvoid GLAPIENTRY 197096c5ddc4Srjs_mesa_marshal_VertexAttribI4sv(GLuint index, const GLshort * v) 197196c5ddc4Srjs{ 197296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 197396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4sv); 197496c5ddc4Srjs struct marshal_cmd_VertexAttribI4sv *cmd; 197596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4sv, cmd_size); 197696c5ddc4Srjs cmd->index = index; 197796c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLshort)); 197896c5ddc4Srjs} 197996c5ddc4Srjs 198096c5ddc4Srjs 198196c5ddc4Srjs/* VertexAttribI4ubv: marshalled asynchronously */ 198296c5ddc4Srjsstruct marshal_cmd_VertexAttribI4ubv 198396c5ddc4Srjs{ 198496c5ddc4Srjs struct marshal_cmd_base cmd_base; 198596c5ddc4Srjs GLuint index; 198696c5ddc4Srjs GLubyte v[4]; 198796c5ddc4Srjs}; 198896c5ddc4Srjsuint32_t 198996c5ddc4Srjs_mesa_unmarshal_VertexAttribI4ubv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4ubv *cmd, const uint64_t *last) 199096c5ddc4Srjs{ 199196c5ddc4Srjs GLuint index = cmd->index; 199296c5ddc4Srjs const GLubyte * v = cmd->v; 199396c5ddc4Srjs CALL_VertexAttribI4ubv(ctx->CurrentServerDispatch, (index, v)); 199496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4ubv), 8) / 8); 199596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 199696c5ddc4Srjs return cmd_size; 199796c5ddc4Srjs} 199896c5ddc4Srjsvoid GLAPIENTRY 199996c5ddc4Srjs_mesa_marshal_VertexAttribI4ubv(GLuint index, const GLubyte * v) 200096c5ddc4Srjs{ 200196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 200296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4ubv); 200396c5ddc4Srjs struct marshal_cmd_VertexAttribI4ubv *cmd; 200496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4ubv, cmd_size); 200596c5ddc4Srjs cmd->index = index; 200696c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLubyte)); 200796c5ddc4Srjs} 200896c5ddc4Srjs 200996c5ddc4Srjs 201096c5ddc4Srjs/* VertexAttribI4usv: marshalled asynchronously */ 201196c5ddc4Srjsstruct marshal_cmd_VertexAttribI4usv 201296c5ddc4Srjs{ 201396c5ddc4Srjs struct marshal_cmd_base cmd_base; 201496c5ddc4Srjs GLuint index; 201596c5ddc4Srjs GLushort v[4]; 201696c5ddc4Srjs}; 201796c5ddc4Srjsuint32_t 201896c5ddc4Srjs_mesa_unmarshal_VertexAttribI4usv(struct gl_context *ctx, const struct marshal_cmd_VertexAttribI4usv *cmd, const uint64_t *last) 201996c5ddc4Srjs{ 202096c5ddc4Srjs GLuint index = cmd->index; 202196c5ddc4Srjs const GLushort * v = cmd->v; 202296c5ddc4Srjs CALL_VertexAttribI4usv(ctx->CurrentServerDispatch, (index, v)); 202396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribI4usv), 8) / 8); 202496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 202596c5ddc4Srjs return cmd_size; 202696c5ddc4Srjs} 202796c5ddc4Srjsvoid GLAPIENTRY 202896c5ddc4Srjs_mesa_marshal_VertexAttribI4usv(GLuint index, const GLushort * v) 202996c5ddc4Srjs{ 203096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 203196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribI4usv); 203296c5ddc4Srjs struct marshal_cmd_VertexAttribI4usv *cmd; 203396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribI4usv, cmd_size); 203496c5ddc4Srjs cmd->index = index; 203596c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLushort)); 203696c5ddc4Srjs} 203796c5ddc4Srjs 203896c5ddc4Srjs 203996c5ddc4Srjs/* VertexAttribIPointer: marshalled asynchronously */ 204096c5ddc4Srjsstruct marshal_cmd_VertexAttribIPointer 204196c5ddc4Srjs{ 204296c5ddc4Srjs struct marshal_cmd_base cmd_base; 204396c5ddc4Srjs GLuint index; 204496c5ddc4Srjs GLint size; 204596c5ddc4Srjs GLenum type; 204696c5ddc4Srjs GLsizei stride; 204796c5ddc4Srjs const GLvoid * pointer; 204896c5ddc4Srjs}; 204996c5ddc4Srjsuint32_t 205096c5ddc4Srjs_mesa_unmarshal_VertexAttribIPointer(struct gl_context *ctx, const struct marshal_cmd_VertexAttribIPointer *cmd, const uint64_t *last) 205196c5ddc4Srjs{ 205296c5ddc4Srjs GLuint index = cmd->index; 205396c5ddc4Srjs GLint size = cmd->size; 205496c5ddc4Srjs GLenum type = cmd->type; 205596c5ddc4Srjs GLsizei stride = cmd->stride; 205696c5ddc4Srjs const GLvoid * pointer = cmd->pointer; 205796c5ddc4Srjs CALL_VertexAttribIPointer(ctx->CurrentServerDispatch, (index, size, type, stride, pointer)); 205896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttribIPointer), 8) / 8); 205996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 206096c5ddc4Srjs return cmd_size; 206196c5ddc4Srjs} 206296c5ddc4Srjsvoid GLAPIENTRY 206396c5ddc4Srjs_mesa_marshal_VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) 206496c5ddc4Srjs{ 206596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 206696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribIPointer); 206796c5ddc4Srjs struct marshal_cmd_VertexAttribIPointer *cmd; 206896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribIPointer, cmd_size); 206996c5ddc4Srjs cmd->index = index; 207096c5ddc4Srjs cmd->size = size; 207196c5ddc4Srjs cmd->type = type; 207296c5ddc4Srjs cmd->stride = stride; 207396c5ddc4Srjs cmd->pointer = pointer; 207496c5ddc4Srjs if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_GENERIC(index), size, type, stride, pointer); 207596c5ddc4Srjs} 207696c5ddc4Srjs 207796c5ddc4Srjs 207896c5ddc4Srjs/* GetVertexAttribIiv: marshalled synchronously */ 207996c5ddc4Srjsvoid GLAPIENTRY 208096c5ddc4Srjs_mesa_marshal_GetVertexAttribIiv(GLuint index, GLenum pname, GLint * params) 208196c5ddc4Srjs{ 208296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 208396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetVertexAttribIiv"); 208496c5ddc4Srjs CALL_GetVertexAttribIiv(ctx->CurrentServerDispatch, (index, pname, params)); 208596c5ddc4Srjs} 208696c5ddc4Srjs 208796c5ddc4Srjs 208896c5ddc4Srjs/* GetVertexAttribIuiv: marshalled synchronously */ 208996c5ddc4Srjsvoid GLAPIENTRY 209096c5ddc4Srjs_mesa_marshal_GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint * params) 209196c5ddc4Srjs{ 209296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 209396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetVertexAttribIuiv"); 209496c5ddc4Srjs CALL_GetVertexAttribIuiv(ctx->CurrentServerDispatch, (index, pname, params)); 209596c5ddc4Srjs} 209696c5ddc4Srjs 209796c5ddc4Srjs 209896c5ddc4Srjs/* Uniform1ui: marshalled asynchronously */ 209996c5ddc4Srjsstruct marshal_cmd_Uniform1ui 210096c5ddc4Srjs{ 210196c5ddc4Srjs struct marshal_cmd_base cmd_base; 210296c5ddc4Srjs GLint location; 210396c5ddc4Srjs GLuint x; 210496c5ddc4Srjs}; 210596c5ddc4Srjsuint32_t 210696c5ddc4Srjs_mesa_unmarshal_Uniform1ui(struct gl_context *ctx, const struct marshal_cmd_Uniform1ui *cmd, const uint64_t *last) 210796c5ddc4Srjs{ 210896c5ddc4Srjs GLint location = cmd->location; 210996c5ddc4Srjs GLuint x = cmd->x; 211096c5ddc4Srjs CALL_Uniform1ui(ctx->CurrentServerDispatch, (location, x)); 211196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform1ui), 8) / 8); 211296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 211396c5ddc4Srjs return cmd_size; 211496c5ddc4Srjs} 211596c5ddc4Srjsvoid GLAPIENTRY 211696c5ddc4Srjs_mesa_marshal_Uniform1ui(GLint location, GLuint x) 211796c5ddc4Srjs{ 211896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 211996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform1ui); 212096c5ddc4Srjs struct marshal_cmd_Uniform1ui *cmd; 212196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform1ui, cmd_size); 212296c5ddc4Srjs cmd->location = location; 212396c5ddc4Srjs cmd->x = x; 212496c5ddc4Srjs} 212596c5ddc4Srjs 212696c5ddc4Srjs 212796c5ddc4Srjs/* Uniform2ui: marshalled asynchronously */ 212896c5ddc4Srjsstruct marshal_cmd_Uniform2ui 212996c5ddc4Srjs{ 213096c5ddc4Srjs struct marshal_cmd_base cmd_base; 213196c5ddc4Srjs GLint location; 213296c5ddc4Srjs GLuint x; 213396c5ddc4Srjs GLuint y; 213496c5ddc4Srjs}; 213596c5ddc4Srjsuint32_t 213696c5ddc4Srjs_mesa_unmarshal_Uniform2ui(struct gl_context *ctx, const struct marshal_cmd_Uniform2ui *cmd, const uint64_t *last) 213796c5ddc4Srjs{ 213896c5ddc4Srjs GLint location = cmd->location; 213996c5ddc4Srjs GLuint x = cmd->x; 214096c5ddc4Srjs GLuint y = cmd->y; 214196c5ddc4Srjs CALL_Uniform2ui(ctx->CurrentServerDispatch, (location, x, y)); 214296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform2ui), 8) / 8); 214396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 214496c5ddc4Srjs return cmd_size; 214596c5ddc4Srjs} 214696c5ddc4Srjsvoid GLAPIENTRY 214796c5ddc4Srjs_mesa_marshal_Uniform2ui(GLint location, GLuint x, GLuint y) 214896c5ddc4Srjs{ 214996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 215096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform2ui); 215196c5ddc4Srjs struct marshal_cmd_Uniform2ui *cmd; 215296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform2ui, cmd_size); 215396c5ddc4Srjs cmd->location = location; 215496c5ddc4Srjs cmd->x = x; 215596c5ddc4Srjs cmd->y = y; 215696c5ddc4Srjs} 215796c5ddc4Srjs 215896c5ddc4Srjs 215996c5ddc4Srjs/* Uniform3ui: marshalled asynchronously */ 216096c5ddc4Srjsstruct marshal_cmd_Uniform3ui 216196c5ddc4Srjs{ 216296c5ddc4Srjs struct marshal_cmd_base cmd_base; 216396c5ddc4Srjs GLint location; 216496c5ddc4Srjs GLuint x; 216596c5ddc4Srjs GLuint y; 216696c5ddc4Srjs GLuint z; 216796c5ddc4Srjs}; 216896c5ddc4Srjsuint32_t 216996c5ddc4Srjs_mesa_unmarshal_Uniform3ui(struct gl_context *ctx, const struct marshal_cmd_Uniform3ui *cmd, const uint64_t *last) 217096c5ddc4Srjs{ 217196c5ddc4Srjs GLint location = cmd->location; 217296c5ddc4Srjs GLuint x = cmd->x; 217396c5ddc4Srjs GLuint y = cmd->y; 217496c5ddc4Srjs GLuint z = cmd->z; 217596c5ddc4Srjs CALL_Uniform3ui(ctx->CurrentServerDispatch, (location, x, y, z)); 217696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform3ui), 8) / 8); 217796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 217896c5ddc4Srjs return cmd_size; 217996c5ddc4Srjs} 218096c5ddc4Srjsvoid GLAPIENTRY 218196c5ddc4Srjs_mesa_marshal_Uniform3ui(GLint location, GLuint x, GLuint y, GLuint z) 218296c5ddc4Srjs{ 218396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 218496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform3ui); 218596c5ddc4Srjs struct marshal_cmd_Uniform3ui *cmd; 218696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform3ui, cmd_size); 218796c5ddc4Srjs cmd->location = location; 218896c5ddc4Srjs cmd->x = x; 218996c5ddc4Srjs cmd->y = y; 219096c5ddc4Srjs cmd->z = z; 219196c5ddc4Srjs} 219296c5ddc4Srjs 219396c5ddc4Srjs 219496c5ddc4Srjs/* Uniform4ui: marshalled asynchronously */ 219596c5ddc4Srjsstruct marshal_cmd_Uniform4ui 219696c5ddc4Srjs{ 219796c5ddc4Srjs struct marshal_cmd_base cmd_base; 219896c5ddc4Srjs GLint location; 219996c5ddc4Srjs GLuint x; 220096c5ddc4Srjs GLuint y; 220196c5ddc4Srjs GLuint z; 220296c5ddc4Srjs GLuint w; 220396c5ddc4Srjs}; 220496c5ddc4Srjsuint32_t 220596c5ddc4Srjs_mesa_unmarshal_Uniform4ui(struct gl_context *ctx, const struct marshal_cmd_Uniform4ui *cmd, const uint64_t *last) 220696c5ddc4Srjs{ 220796c5ddc4Srjs GLint location = cmd->location; 220896c5ddc4Srjs GLuint x = cmd->x; 220996c5ddc4Srjs GLuint y = cmd->y; 221096c5ddc4Srjs GLuint z = cmd->z; 221196c5ddc4Srjs GLuint w = cmd->w; 221296c5ddc4Srjs CALL_Uniform4ui(ctx->CurrentServerDispatch, (location, x, y, z, w)); 221396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Uniform4ui), 8) / 8); 221496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 221596c5ddc4Srjs return cmd_size; 221696c5ddc4Srjs} 221796c5ddc4Srjsvoid GLAPIENTRY 221896c5ddc4Srjs_mesa_marshal_Uniform4ui(GLint location, GLuint x, GLuint y, GLuint z, GLuint w) 221996c5ddc4Srjs{ 222096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 222196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform4ui); 222296c5ddc4Srjs struct marshal_cmd_Uniform4ui *cmd; 222396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform4ui, cmd_size); 222496c5ddc4Srjs cmd->location = location; 222596c5ddc4Srjs cmd->x = x; 222696c5ddc4Srjs cmd->y = y; 222796c5ddc4Srjs cmd->z = z; 222896c5ddc4Srjs cmd->w = w; 222996c5ddc4Srjs} 223096c5ddc4Srjs 223196c5ddc4Srjs 223296c5ddc4Srjs/* Uniform1uiv: marshalled asynchronously */ 223396c5ddc4Srjsstruct marshal_cmd_Uniform1uiv 223496c5ddc4Srjs{ 223596c5ddc4Srjs struct marshal_cmd_base cmd_base; 223696c5ddc4Srjs GLint location; 223796c5ddc4Srjs GLsizei count; 223896c5ddc4Srjs /* Next safe_mul(count, 1 * sizeof(GLuint)) bytes are GLuint value[count] */ 223996c5ddc4Srjs}; 224096c5ddc4Srjsuint32_t 224196c5ddc4Srjs_mesa_unmarshal_Uniform1uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform1uiv *cmd, const uint64_t *last) 224296c5ddc4Srjs{ 224396c5ddc4Srjs GLint location = cmd->location; 224496c5ddc4Srjs GLsizei count = cmd->count; 224596c5ddc4Srjs GLuint * value; 224696c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 224796c5ddc4Srjs value = (GLuint *) variable_data; 224896c5ddc4Srjs CALL_Uniform1uiv(ctx->CurrentServerDispatch, (location, count, value)); 224996c5ddc4Srjs return cmd->cmd_base.cmd_size; 225096c5ddc4Srjs} 225196c5ddc4Srjsvoid GLAPIENTRY 225296c5ddc4Srjs_mesa_marshal_Uniform1uiv(GLint location, GLsizei count, const GLuint * value) 225396c5ddc4Srjs{ 225496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 225596c5ddc4Srjs int value_size = safe_mul(count, 1 * sizeof(GLuint)); 225696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform1uiv) + value_size; 225796c5ddc4Srjs struct marshal_cmd_Uniform1uiv *cmd; 225896c5ddc4Srjs if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 225996c5ddc4Srjs _mesa_glthread_finish_before(ctx, "Uniform1uiv"); 226096c5ddc4Srjs CALL_Uniform1uiv(ctx->CurrentServerDispatch, (location, count, value)); 226196c5ddc4Srjs return; 226296c5ddc4Srjs } 226396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform1uiv, cmd_size); 226496c5ddc4Srjs cmd->location = location; 226596c5ddc4Srjs cmd->count = count; 226696c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 226796c5ddc4Srjs memcpy(variable_data, value, value_size); 226896c5ddc4Srjs} 226996c5ddc4Srjs 227096c5ddc4Srjs 227196c5ddc4Srjs/* Uniform2uiv: marshalled asynchronously */ 227296c5ddc4Srjsstruct marshal_cmd_Uniform2uiv 227396c5ddc4Srjs{ 227496c5ddc4Srjs struct marshal_cmd_base cmd_base; 227596c5ddc4Srjs GLint location; 227696c5ddc4Srjs GLsizei count; 227796c5ddc4Srjs /* Next safe_mul(count, 2 * sizeof(GLuint)) bytes are GLuint value[count][2] */ 227896c5ddc4Srjs}; 227996c5ddc4Srjsuint32_t 228096c5ddc4Srjs_mesa_unmarshal_Uniform2uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform2uiv *cmd, const uint64_t *last) 228196c5ddc4Srjs{ 228296c5ddc4Srjs GLint location = cmd->location; 228396c5ddc4Srjs GLsizei count = cmd->count; 228496c5ddc4Srjs GLuint * value; 228596c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 228696c5ddc4Srjs value = (GLuint *) variable_data; 228796c5ddc4Srjs CALL_Uniform2uiv(ctx->CurrentServerDispatch, (location, count, value)); 228896c5ddc4Srjs return cmd->cmd_base.cmd_size; 228996c5ddc4Srjs} 229096c5ddc4Srjsvoid GLAPIENTRY 229196c5ddc4Srjs_mesa_marshal_Uniform2uiv(GLint location, GLsizei count, const GLuint * value) 229296c5ddc4Srjs{ 229396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 229496c5ddc4Srjs int value_size = safe_mul(count, 2 * sizeof(GLuint)); 229596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform2uiv) + value_size; 229696c5ddc4Srjs struct marshal_cmd_Uniform2uiv *cmd; 229796c5ddc4Srjs if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 229896c5ddc4Srjs _mesa_glthread_finish_before(ctx, "Uniform2uiv"); 229996c5ddc4Srjs CALL_Uniform2uiv(ctx->CurrentServerDispatch, (location, count, value)); 230096c5ddc4Srjs return; 230196c5ddc4Srjs } 230296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform2uiv, cmd_size); 230396c5ddc4Srjs cmd->location = location; 230496c5ddc4Srjs cmd->count = count; 230596c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 230696c5ddc4Srjs memcpy(variable_data, value, value_size); 230796c5ddc4Srjs} 230896c5ddc4Srjs 230996c5ddc4Srjs 231096c5ddc4Srjs/* Uniform3uiv: marshalled asynchronously */ 231196c5ddc4Srjsstruct marshal_cmd_Uniform3uiv 231296c5ddc4Srjs{ 231396c5ddc4Srjs struct marshal_cmd_base cmd_base; 231496c5ddc4Srjs GLint location; 231596c5ddc4Srjs GLsizei count; 231696c5ddc4Srjs /* Next safe_mul(count, 3 * sizeof(GLuint)) bytes are GLuint value[count][3] */ 231796c5ddc4Srjs}; 231896c5ddc4Srjsuint32_t 231996c5ddc4Srjs_mesa_unmarshal_Uniform3uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform3uiv *cmd, const uint64_t *last) 232096c5ddc4Srjs{ 232196c5ddc4Srjs GLint location = cmd->location; 232296c5ddc4Srjs GLsizei count = cmd->count; 232396c5ddc4Srjs GLuint * value; 232496c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 232596c5ddc4Srjs value = (GLuint *) variable_data; 232696c5ddc4Srjs CALL_Uniform3uiv(ctx->CurrentServerDispatch, (location, count, value)); 232796c5ddc4Srjs return cmd->cmd_base.cmd_size; 232896c5ddc4Srjs} 232996c5ddc4Srjsvoid GLAPIENTRY 233096c5ddc4Srjs_mesa_marshal_Uniform3uiv(GLint location, GLsizei count, const GLuint * value) 233196c5ddc4Srjs{ 233296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 233396c5ddc4Srjs int value_size = safe_mul(count, 3 * sizeof(GLuint)); 233496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform3uiv) + value_size; 233596c5ddc4Srjs struct marshal_cmd_Uniform3uiv *cmd; 233696c5ddc4Srjs if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 233796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "Uniform3uiv"); 233896c5ddc4Srjs CALL_Uniform3uiv(ctx->CurrentServerDispatch, (location, count, value)); 233996c5ddc4Srjs return; 234096c5ddc4Srjs } 234196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform3uiv, cmd_size); 234296c5ddc4Srjs cmd->location = location; 234396c5ddc4Srjs cmd->count = count; 234496c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 234596c5ddc4Srjs memcpy(variable_data, value, value_size); 234696c5ddc4Srjs} 234796c5ddc4Srjs 234896c5ddc4Srjs 234996c5ddc4Srjs/* Uniform4uiv: marshalled asynchronously */ 235096c5ddc4Srjsstruct marshal_cmd_Uniform4uiv 235196c5ddc4Srjs{ 235296c5ddc4Srjs struct marshal_cmd_base cmd_base; 235396c5ddc4Srjs GLint location; 235496c5ddc4Srjs GLsizei count; 235596c5ddc4Srjs /* Next safe_mul(count, 4 * sizeof(GLuint)) bytes are GLuint value[count][4] */ 235696c5ddc4Srjs}; 235796c5ddc4Srjsuint32_t 235896c5ddc4Srjs_mesa_unmarshal_Uniform4uiv(struct gl_context *ctx, const struct marshal_cmd_Uniform4uiv *cmd, const uint64_t *last) 235996c5ddc4Srjs{ 236096c5ddc4Srjs GLint location = cmd->location; 236196c5ddc4Srjs GLsizei count = cmd->count; 236296c5ddc4Srjs GLuint * value; 236396c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 236496c5ddc4Srjs value = (GLuint *) variable_data; 236596c5ddc4Srjs CALL_Uniform4uiv(ctx->CurrentServerDispatch, (location, count, value)); 236696c5ddc4Srjs return cmd->cmd_base.cmd_size; 236796c5ddc4Srjs} 236896c5ddc4Srjsvoid GLAPIENTRY 236996c5ddc4Srjs_mesa_marshal_Uniform4uiv(GLint location, GLsizei count, const GLuint * value) 237096c5ddc4Srjs{ 237196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 237296c5ddc4Srjs int value_size = safe_mul(count, 4 * sizeof(GLuint)); 237396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Uniform4uiv) + value_size; 237496c5ddc4Srjs struct marshal_cmd_Uniform4uiv *cmd; 237596c5ddc4Srjs if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 237696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "Uniform4uiv"); 237796c5ddc4Srjs CALL_Uniform4uiv(ctx->CurrentServerDispatch, (location, count, value)); 237896c5ddc4Srjs return; 237996c5ddc4Srjs } 238096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Uniform4uiv, cmd_size); 238196c5ddc4Srjs cmd->location = location; 238296c5ddc4Srjs cmd->count = count; 238396c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 238496c5ddc4Srjs memcpy(variable_data, value, value_size); 238596c5ddc4Srjs} 238696c5ddc4Srjs 238796c5ddc4Srjs 238896c5ddc4Srjs/* GetUniformuiv: marshalled synchronously */ 238996c5ddc4Srjsvoid GLAPIENTRY 239096c5ddc4Srjs_mesa_marshal_GetUniformuiv(GLuint program, GLint location, GLuint * params) 239196c5ddc4Srjs{ 239296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 239396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetUniformuiv"); 239496c5ddc4Srjs CALL_GetUniformuiv(ctx->CurrentServerDispatch, (program, location, params)); 239596c5ddc4Srjs} 239696c5ddc4Srjs 239796c5ddc4Srjs 239896c5ddc4Srjs/* BindFragDataLocation: marshalled asynchronously */ 239996c5ddc4Srjsstruct marshal_cmd_BindFragDataLocation 240096c5ddc4Srjs{ 240196c5ddc4Srjs struct marshal_cmd_base cmd_base; 240296c5ddc4Srjs GLuint program; 240396c5ddc4Srjs GLuint colorNumber; 240496c5ddc4Srjs /* Next (strlen(name) + 1) bytes are GLchar name[(strlen(name) + 1)] */ 240596c5ddc4Srjs}; 240696c5ddc4Srjsuint32_t 240796c5ddc4Srjs_mesa_unmarshal_BindFragDataLocation(struct gl_context *ctx, const struct marshal_cmd_BindFragDataLocation *cmd, const uint64_t *last) 240896c5ddc4Srjs{ 240996c5ddc4Srjs GLuint program = cmd->program; 241096c5ddc4Srjs GLuint colorNumber = cmd->colorNumber; 241196c5ddc4Srjs GLchar * name; 241296c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 241396c5ddc4Srjs name = (GLchar *) variable_data; 241496c5ddc4Srjs CALL_BindFragDataLocation(ctx->CurrentServerDispatch, (program, colorNumber, name)); 241596c5ddc4Srjs return cmd->cmd_base.cmd_size; 241696c5ddc4Srjs} 241796c5ddc4Srjsvoid GLAPIENTRY 241896c5ddc4Srjs_mesa_marshal_BindFragDataLocation(GLuint program, GLuint colorNumber, const GLchar * name) 241996c5ddc4Srjs{ 242096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 242196c5ddc4Srjs int name_size = (strlen(name) + 1); 242296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BindFragDataLocation) + name_size; 242396c5ddc4Srjs struct marshal_cmd_BindFragDataLocation *cmd; 242496c5ddc4Srjs if (unlikely(name_size < 0 || (name_size > 0 && !name) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 242596c5ddc4Srjs _mesa_glthread_finish_before(ctx, "BindFragDataLocation"); 242696c5ddc4Srjs CALL_BindFragDataLocation(ctx->CurrentServerDispatch, (program, colorNumber, name)); 242796c5ddc4Srjs return; 242896c5ddc4Srjs } 242996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindFragDataLocation, cmd_size); 243096c5ddc4Srjs cmd->program = program; 243196c5ddc4Srjs cmd->colorNumber = colorNumber; 243296c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 243396c5ddc4Srjs memcpy(variable_data, name, name_size); 243496c5ddc4Srjs} 243596c5ddc4Srjs 243696c5ddc4Srjs 243796c5ddc4Srjs/* GetFragDataLocation: marshalled synchronously */ 243896c5ddc4SrjsGLint GLAPIENTRY 243996c5ddc4Srjs_mesa_marshal_GetFragDataLocation(GLuint program, const GLchar * name) 244096c5ddc4Srjs{ 244196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 244296c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetFragDataLocation"); 244396c5ddc4Srjs return CALL_GetFragDataLocation(ctx->CurrentServerDispatch, (program, name)); 244496c5ddc4Srjs} 244596c5ddc4Srjs 244696c5ddc4Srjs 244796c5ddc4Srjs/* ClearBufferiv: marshalled asynchronously */ 244896c5ddc4Srjsstruct marshal_cmd_ClearBufferiv 244996c5ddc4Srjs{ 245096c5ddc4Srjs struct marshal_cmd_base cmd_base; 245196c5ddc4Srjs GLenum buffer; 245296c5ddc4Srjs GLint drawbuffer; 245396c5ddc4Srjs /* Next safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLint)) bytes are GLint value[_mesa_buffer_enum_to_count(buffer)] */ 245496c5ddc4Srjs}; 245596c5ddc4Srjsuint32_t 245696c5ddc4Srjs_mesa_unmarshal_ClearBufferiv(struct gl_context *ctx, const struct marshal_cmd_ClearBufferiv *cmd, const uint64_t *last) 245796c5ddc4Srjs{ 245896c5ddc4Srjs GLenum buffer = cmd->buffer; 245996c5ddc4Srjs GLint drawbuffer = cmd->drawbuffer; 246096c5ddc4Srjs GLint * value; 246196c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 246296c5ddc4Srjs value = (GLint *) variable_data; 246396c5ddc4Srjs CALL_ClearBufferiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value)); 246496c5ddc4Srjs return cmd->cmd_base.cmd_size; 246596c5ddc4Srjs} 246696c5ddc4Srjsvoid GLAPIENTRY 246796c5ddc4Srjs_mesa_marshal_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint * value) 246896c5ddc4Srjs{ 246996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 247096c5ddc4Srjs int value_size = safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLint)); 247196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearBufferiv) + value_size; 247296c5ddc4Srjs struct marshal_cmd_ClearBufferiv *cmd; 247396c5ddc4Srjs if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 247496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "ClearBufferiv"); 247596c5ddc4Srjs CALL_ClearBufferiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value)); 247696c5ddc4Srjs return; 247796c5ddc4Srjs } 247896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferiv, cmd_size); 247996c5ddc4Srjs cmd->buffer = buffer; 248096c5ddc4Srjs cmd->drawbuffer = drawbuffer; 248196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 248296c5ddc4Srjs memcpy(variable_data, value, value_size); 248396c5ddc4Srjs} 248496c5ddc4Srjs 248596c5ddc4Srjs 248696c5ddc4Srjs/* ClearBufferuiv: marshalled asynchronously */ 248796c5ddc4Srjsstruct marshal_cmd_ClearBufferuiv 248896c5ddc4Srjs{ 248996c5ddc4Srjs struct marshal_cmd_base cmd_base; 249096c5ddc4Srjs GLenum buffer; 249196c5ddc4Srjs GLint drawbuffer; 249296c5ddc4Srjs /* Next safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLuint)) bytes are GLuint value[_mesa_buffer_enum_to_count(buffer)] */ 249396c5ddc4Srjs}; 249496c5ddc4Srjsuint32_t 249596c5ddc4Srjs_mesa_unmarshal_ClearBufferuiv(struct gl_context *ctx, const struct marshal_cmd_ClearBufferuiv *cmd, const uint64_t *last) 249696c5ddc4Srjs{ 249796c5ddc4Srjs GLenum buffer = cmd->buffer; 249896c5ddc4Srjs GLint drawbuffer = cmd->drawbuffer; 249996c5ddc4Srjs GLuint * value; 250096c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 250196c5ddc4Srjs value = (GLuint *) variable_data; 250296c5ddc4Srjs CALL_ClearBufferuiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value)); 250396c5ddc4Srjs return cmd->cmd_base.cmd_size; 250496c5ddc4Srjs} 250596c5ddc4Srjsvoid GLAPIENTRY 250696c5ddc4Srjs_mesa_marshal_ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint * value) 250796c5ddc4Srjs{ 250896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 250996c5ddc4Srjs int value_size = safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLuint)); 251096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearBufferuiv) + value_size; 251196c5ddc4Srjs struct marshal_cmd_ClearBufferuiv *cmd; 251296c5ddc4Srjs if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 251396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "ClearBufferuiv"); 251496c5ddc4Srjs CALL_ClearBufferuiv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value)); 251596c5ddc4Srjs return; 251696c5ddc4Srjs } 251796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferuiv, cmd_size); 251896c5ddc4Srjs cmd->buffer = buffer; 251996c5ddc4Srjs cmd->drawbuffer = drawbuffer; 252096c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 252196c5ddc4Srjs memcpy(variable_data, value, value_size); 252296c5ddc4Srjs} 252396c5ddc4Srjs 252496c5ddc4Srjs 252596c5ddc4Srjs/* ClearBufferfv: marshalled asynchronously */ 252696c5ddc4Srjsstruct marshal_cmd_ClearBufferfv 252796c5ddc4Srjs{ 252896c5ddc4Srjs struct marshal_cmd_base cmd_base; 252996c5ddc4Srjs GLenum buffer; 253096c5ddc4Srjs GLint drawbuffer; 253196c5ddc4Srjs /* Next safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLfloat)) bytes are GLfloat value[_mesa_buffer_enum_to_count(buffer)] */ 253296c5ddc4Srjs}; 253396c5ddc4Srjsuint32_t 253496c5ddc4Srjs_mesa_unmarshal_ClearBufferfv(struct gl_context *ctx, const struct marshal_cmd_ClearBufferfv *cmd, const uint64_t *last) 253596c5ddc4Srjs{ 253696c5ddc4Srjs GLenum buffer = cmd->buffer; 253796c5ddc4Srjs GLint drawbuffer = cmd->drawbuffer; 253896c5ddc4Srjs GLfloat * value; 253996c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 254096c5ddc4Srjs value = (GLfloat *) variable_data; 254196c5ddc4Srjs CALL_ClearBufferfv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value)); 254296c5ddc4Srjs return cmd->cmd_base.cmd_size; 254396c5ddc4Srjs} 254496c5ddc4Srjsvoid GLAPIENTRY 254596c5ddc4Srjs_mesa_marshal_ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat * value) 254696c5ddc4Srjs{ 254796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 254896c5ddc4Srjs int value_size = safe_mul(_mesa_buffer_enum_to_count(buffer), 1 * sizeof(GLfloat)); 254996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearBufferfv) + value_size; 255096c5ddc4Srjs struct marshal_cmd_ClearBufferfv *cmd; 255196c5ddc4Srjs if (unlikely(value_size < 0 || (value_size > 0 && !value) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 255296c5ddc4Srjs _mesa_glthread_finish_before(ctx, "ClearBufferfv"); 255396c5ddc4Srjs CALL_ClearBufferfv(ctx->CurrentServerDispatch, (buffer, drawbuffer, value)); 255496c5ddc4Srjs return; 255596c5ddc4Srjs } 255696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferfv, cmd_size); 255796c5ddc4Srjs cmd->buffer = buffer; 255896c5ddc4Srjs cmd->drawbuffer = drawbuffer; 255996c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 256096c5ddc4Srjs memcpy(variable_data, value, value_size); 256196c5ddc4Srjs} 256296c5ddc4Srjs 256396c5ddc4Srjs 256496c5ddc4Srjs/* ClearBufferfi: marshalled asynchronously */ 256596c5ddc4Srjsstruct marshal_cmd_ClearBufferfi 256696c5ddc4Srjs{ 256796c5ddc4Srjs struct marshal_cmd_base cmd_base; 256896c5ddc4Srjs GLenum buffer; 256996c5ddc4Srjs GLint drawbuffer; 257096c5ddc4Srjs GLfloat depth; 257196c5ddc4Srjs GLint stencil; 257296c5ddc4Srjs}; 257396c5ddc4Srjsuint32_t 257496c5ddc4Srjs_mesa_unmarshal_ClearBufferfi(struct gl_context *ctx, const struct marshal_cmd_ClearBufferfi *cmd, const uint64_t *last) 257596c5ddc4Srjs{ 257696c5ddc4Srjs GLenum buffer = cmd->buffer; 257796c5ddc4Srjs GLint drawbuffer = cmd->drawbuffer; 257896c5ddc4Srjs GLfloat depth = cmd->depth; 257996c5ddc4Srjs GLint stencil = cmd->stencil; 258096c5ddc4Srjs CALL_ClearBufferfi(ctx->CurrentServerDispatch, (buffer, drawbuffer, depth, stencil)); 258196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearBufferfi), 8) / 8); 258296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 258396c5ddc4Srjs return cmd_size; 258496c5ddc4Srjs} 258596c5ddc4Srjsvoid GLAPIENTRY 258696c5ddc4Srjs_mesa_marshal_ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) 258796c5ddc4Srjs{ 258896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 258996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearBufferfi); 259096c5ddc4Srjs struct marshal_cmd_ClearBufferfi *cmd; 259196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearBufferfi, cmd_size); 259296c5ddc4Srjs cmd->buffer = buffer; 259396c5ddc4Srjs cmd->drawbuffer = drawbuffer; 259496c5ddc4Srjs cmd->depth = depth; 259596c5ddc4Srjs cmd->stencil = stencil; 259696c5ddc4Srjs} 259796c5ddc4Srjs 259896c5ddc4Srjs 259996c5ddc4Srjs/* GetStringi: marshalled synchronously */ 260096c5ddc4Srjsconst GLubyte * GLAPIENTRY 260196c5ddc4Srjs_mesa_marshal_GetStringi(GLenum name, GLuint index) 260296c5ddc4Srjs{ 260396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 260496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetStringi"); 260596c5ddc4Srjs return CALL_GetStringi(ctx->CurrentServerDispatch, (name, index)); 260696c5ddc4Srjs} 260796c5ddc4Srjs 260896c5ddc4Srjs 260996c5ddc4Srjs/* BeginTransformFeedback: marshalled asynchronously */ 261096c5ddc4Srjsstruct marshal_cmd_BeginTransformFeedback 261196c5ddc4Srjs{ 261296c5ddc4Srjs struct marshal_cmd_base cmd_base; 261396c5ddc4Srjs GLenum mode; 261496c5ddc4Srjs}; 261596c5ddc4Srjsuint32_t 261696c5ddc4Srjs_mesa_unmarshal_BeginTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_BeginTransformFeedback *cmd, const uint64_t *last) 261796c5ddc4Srjs{ 261896c5ddc4Srjs GLenum mode = cmd->mode; 261996c5ddc4Srjs CALL_BeginTransformFeedback(ctx->CurrentServerDispatch, (mode)); 262096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BeginTransformFeedback), 8) / 8); 262196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 262296c5ddc4Srjs return cmd_size; 262396c5ddc4Srjs} 262496c5ddc4Srjsvoid GLAPIENTRY 262596c5ddc4Srjs_mesa_marshal_BeginTransformFeedback(GLenum mode) 262696c5ddc4Srjs{ 262796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 262896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BeginTransformFeedback); 262996c5ddc4Srjs struct marshal_cmd_BeginTransformFeedback *cmd; 263096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BeginTransformFeedback, cmd_size); 263196c5ddc4Srjs cmd->mode = mode; 263296c5ddc4Srjs} 263396c5ddc4Srjs 263496c5ddc4Srjs 263596c5ddc4Srjs/* EndTransformFeedback: marshalled asynchronously */ 263696c5ddc4Srjsstruct marshal_cmd_EndTransformFeedback 263796c5ddc4Srjs{ 263896c5ddc4Srjs struct marshal_cmd_base cmd_base; 263996c5ddc4Srjs}; 264096c5ddc4Srjsuint32_t 264196c5ddc4Srjs_mesa_unmarshal_EndTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_EndTransformFeedback *cmd, const uint64_t *last) 264296c5ddc4Srjs{ 264396c5ddc4Srjs CALL_EndTransformFeedback(ctx->CurrentServerDispatch, ()); 264496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_EndTransformFeedback), 8) / 8); 264596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 264696c5ddc4Srjs return cmd_size; 264796c5ddc4Srjs} 264896c5ddc4Srjsvoid GLAPIENTRY 264996c5ddc4Srjs_mesa_marshal_EndTransformFeedback(void) 265096c5ddc4Srjs{ 265196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 265296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_EndTransformFeedback); 265396c5ddc4Srjs struct marshal_cmd_EndTransformFeedback *cmd; 265496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_EndTransformFeedback, cmd_size); 265596c5ddc4Srjs (void) cmd; 265696c5ddc4Srjs} 265796c5ddc4Srjs 265896c5ddc4Srjs 265996c5ddc4Srjs/* BindBufferRange: marshalled asynchronously */ 266096c5ddc4Srjsstruct marshal_cmd_BindBufferRange 266196c5ddc4Srjs{ 266296c5ddc4Srjs struct marshal_cmd_base cmd_base; 266396c5ddc4Srjs GLenum target; 266496c5ddc4Srjs GLuint index; 266596c5ddc4Srjs GLuint buffer; 266696c5ddc4Srjs GLintptr offset; 266796c5ddc4Srjs GLsizeiptr size; 266896c5ddc4Srjs}; 266996c5ddc4Srjsuint32_t 267096c5ddc4Srjs_mesa_unmarshal_BindBufferRange(struct gl_context *ctx, const struct marshal_cmd_BindBufferRange *cmd, const uint64_t *last) 267196c5ddc4Srjs{ 267296c5ddc4Srjs GLenum target = cmd->target; 267396c5ddc4Srjs GLuint index = cmd->index; 267496c5ddc4Srjs GLuint buffer = cmd->buffer; 267596c5ddc4Srjs GLintptr offset = cmd->offset; 267696c5ddc4Srjs GLsizeiptr size = cmd->size; 267796c5ddc4Srjs CALL_BindBufferRange(ctx->CurrentServerDispatch, (target, index, buffer, offset, size)); 267896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindBufferRange), 8) / 8); 267996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 268096c5ddc4Srjs return cmd_size; 268196c5ddc4Srjs} 268296c5ddc4Srjsvoid GLAPIENTRY 268396c5ddc4Srjs_mesa_marshal_BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) 268496c5ddc4Srjs{ 268596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 268696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BindBufferRange); 268796c5ddc4Srjs struct marshal_cmd_BindBufferRange *cmd; 268896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindBufferRange, cmd_size); 268996c5ddc4Srjs cmd->target = target; 269096c5ddc4Srjs cmd->index = index; 269196c5ddc4Srjs cmd->buffer = buffer; 269296c5ddc4Srjs cmd->offset = offset; 269396c5ddc4Srjs cmd->size = size; 269496c5ddc4Srjs} 269596c5ddc4Srjs 269696c5ddc4Srjs 269796c5ddc4Srjs/* BindBufferBase: marshalled asynchronously */ 269896c5ddc4Srjsstruct marshal_cmd_BindBufferBase 269996c5ddc4Srjs{ 270096c5ddc4Srjs struct marshal_cmd_base cmd_base; 270196c5ddc4Srjs GLenum target; 270296c5ddc4Srjs GLuint index; 270396c5ddc4Srjs GLuint buffer; 270496c5ddc4Srjs}; 270596c5ddc4Srjsuint32_t 270696c5ddc4Srjs_mesa_unmarshal_BindBufferBase(struct gl_context *ctx, const struct marshal_cmd_BindBufferBase *cmd, const uint64_t *last) 270796c5ddc4Srjs{ 270896c5ddc4Srjs GLenum target = cmd->target; 270996c5ddc4Srjs GLuint index = cmd->index; 271096c5ddc4Srjs GLuint buffer = cmd->buffer; 271196c5ddc4Srjs CALL_BindBufferBase(ctx->CurrentServerDispatch, (target, index, buffer)); 271296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindBufferBase), 8) / 8); 271396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 271496c5ddc4Srjs return cmd_size; 271596c5ddc4Srjs} 271696c5ddc4Srjsvoid GLAPIENTRY 271796c5ddc4Srjs_mesa_marshal_BindBufferBase(GLenum target, GLuint index, GLuint buffer) 271896c5ddc4Srjs{ 271996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 272096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BindBufferBase); 272196c5ddc4Srjs struct marshal_cmd_BindBufferBase *cmd; 272296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindBufferBase, cmd_size); 272396c5ddc4Srjs cmd->target = target; 272496c5ddc4Srjs cmd->index = index; 272596c5ddc4Srjs cmd->buffer = buffer; 272696c5ddc4Srjs} 272796c5ddc4Srjs 272896c5ddc4Srjs 272996c5ddc4Srjs/* TransformFeedbackVaryings: marshalled synchronously */ 273096c5ddc4Srjsvoid GLAPIENTRY 273196c5ddc4Srjs_mesa_marshal_TransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar * const * varyings, GLenum bufferMode) 273296c5ddc4Srjs{ 273396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 273496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TransformFeedbackVaryings"); 273596c5ddc4Srjs CALL_TransformFeedbackVaryings(ctx->CurrentServerDispatch, (program, count, varyings, bufferMode)); 273696c5ddc4Srjs} 273796c5ddc4Srjs 273896c5ddc4Srjs 273996c5ddc4Srjs/* GetTransformFeedbackVarying: marshalled synchronously */ 274096c5ddc4Srjsvoid GLAPIENTRY 274196c5ddc4Srjs_mesa_marshal_GetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) 274296c5ddc4Srjs{ 274396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 274496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTransformFeedbackVarying"); 274596c5ddc4Srjs CALL_GetTransformFeedbackVarying(ctx->CurrentServerDispatch, (program, index, bufSize, length, size, type, name)); 274696c5ddc4Srjs} 274796c5ddc4Srjs 274896c5ddc4Srjs 274996c5ddc4Srjs/* BeginConditionalRender: marshalled asynchronously */ 275096c5ddc4Srjsstruct marshal_cmd_BeginConditionalRender 275196c5ddc4Srjs{ 275296c5ddc4Srjs struct marshal_cmd_base cmd_base; 275396c5ddc4Srjs GLuint query; 275496c5ddc4Srjs GLenum mode; 275596c5ddc4Srjs}; 275696c5ddc4Srjsuint32_t 275796c5ddc4Srjs_mesa_unmarshal_BeginConditionalRender(struct gl_context *ctx, const struct marshal_cmd_BeginConditionalRender *cmd, const uint64_t *last) 275896c5ddc4Srjs{ 275996c5ddc4Srjs GLuint query = cmd->query; 276096c5ddc4Srjs GLenum mode = cmd->mode; 276196c5ddc4Srjs CALL_BeginConditionalRender(ctx->CurrentServerDispatch, (query, mode)); 276296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BeginConditionalRender), 8) / 8); 276396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 276496c5ddc4Srjs return cmd_size; 276596c5ddc4Srjs} 276696c5ddc4Srjsvoid GLAPIENTRY 276796c5ddc4Srjs_mesa_marshal_BeginConditionalRender(GLuint query, GLenum mode) 276896c5ddc4Srjs{ 276996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 277096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BeginConditionalRender); 277196c5ddc4Srjs struct marshal_cmd_BeginConditionalRender *cmd; 277296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BeginConditionalRender, cmd_size); 277396c5ddc4Srjs cmd->query = query; 277496c5ddc4Srjs cmd->mode = mode; 277596c5ddc4Srjs} 277696c5ddc4Srjs 277796c5ddc4Srjs 277896c5ddc4Srjs/* EndConditionalRender: marshalled asynchronously */ 277996c5ddc4Srjsstruct marshal_cmd_EndConditionalRender 278096c5ddc4Srjs{ 278196c5ddc4Srjs struct marshal_cmd_base cmd_base; 278296c5ddc4Srjs}; 278396c5ddc4Srjsuint32_t 278496c5ddc4Srjs_mesa_unmarshal_EndConditionalRender(struct gl_context *ctx, const struct marshal_cmd_EndConditionalRender *cmd, const uint64_t *last) 278596c5ddc4Srjs{ 278696c5ddc4Srjs CALL_EndConditionalRender(ctx->CurrentServerDispatch, ()); 278796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_EndConditionalRender), 8) / 8); 278896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 278996c5ddc4Srjs return cmd_size; 279096c5ddc4Srjs} 279196c5ddc4Srjsvoid GLAPIENTRY 279296c5ddc4Srjs_mesa_marshal_EndConditionalRender(void) 279396c5ddc4Srjs{ 279496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 279596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_EndConditionalRender); 279696c5ddc4Srjs struct marshal_cmd_EndConditionalRender *cmd; 279796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_EndConditionalRender, cmd_size); 279896c5ddc4Srjs (void) cmd; 279996c5ddc4Srjs} 280096c5ddc4Srjs 280196c5ddc4Srjs 280296c5ddc4Srjs/* PrimitiveRestartIndex: marshalled asynchronously */ 280396c5ddc4Srjsstruct marshal_cmd_PrimitiveRestartIndex 280496c5ddc4Srjs{ 280596c5ddc4Srjs struct marshal_cmd_base cmd_base; 280696c5ddc4Srjs GLuint index; 280796c5ddc4Srjs}; 280896c5ddc4Srjsuint32_t 280996c5ddc4Srjs_mesa_unmarshal_PrimitiveRestartIndex(struct gl_context *ctx, const struct marshal_cmd_PrimitiveRestartIndex *cmd, const uint64_t *last) 281096c5ddc4Srjs{ 281196c5ddc4Srjs GLuint index = cmd->index; 281296c5ddc4Srjs CALL_PrimitiveRestartIndex(ctx->CurrentServerDispatch, (index)); 281396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PrimitiveRestartIndex), 8) / 8); 281496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 281596c5ddc4Srjs return cmd_size; 281696c5ddc4Srjs} 281796c5ddc4Srjsvoid GLAPIENTRY 281896c5ddc4Srjs_mesa_marshal_PrimitiveRestartIndex(GLuint index) 281996c5ddc4Srjs{ 282096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 282196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PrimitiveRestartIndex); 282296c5ddc4Srjs struct marshal_cmd_PrimitiveRestartIndex *cmd; 282396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PrimitiveRestartIndex, cmd_size); 282496c5ddc4Srjs cmd->index = index; 282596c5ddc4Srjs _mesa_glthread_PrimitiveRestartIndex(ctx, index); 282696c5ddc4Srjs} 282796c5ddc4Srjs 282896c5ddc4Srjs 282996c5ddc4Srjs/* GetInteger64i_v: marshalled synchronously */ 283096c5ddc4Srjsvoid GLAPIENTRY 283196c5ddc4Srjs_mesa_marshal_GetInteger64i_v(GLenum cap, GLuint index, GLint64 * data) 283296c5ddc4Srjs{ 283396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 283496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetInteger64i_v"); 283596c5ddc4Srjs CALL_GetInteger64i_v(ctx->CurrentServerDispatch, (cap, index, data)); 283696c5ddc4Srjs} 283796c5ddc4Srjs 283896c5ddc4Srjs 283996c5ddc4Srjs/* GetBufferParameteri64v: marshalled synchronously */ 284096c5ddc4Srjsvoid GLAPIENTRY 284196c5ddc4Srjs_mesa_marshal_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 * params) 284296c5ddc4Srjs{ 284396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 284496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetBufferParameteri64v"); 284596c5ddc4Srjs CALL_GetBufferParameteri64v(ctx->CurrentServerDispatch, (target, pname, params)); 284696c5ddc4Srjs} 284796c5ddc4Srjs 284896c5ddc4Srjs 284996c5ddc4Srjs/* FramebufferTexture: marshalled asynchronously */ 285096c5ddc4Srjsstruct marshal_cmd_FramebufferTexture 285196c5ddc4Srjs{ 285296c5ddc4Srjs struct marshal_cmd_base cmd_base; 285396c5ddc4Srjs GLenum target; 285496c5ddc4Srjs GLenum attachment; 285596c5ddc4Srjs GLuint texture; 285696c5ddc4Srjs GLint level; 285796c5ddc4Srjs}; 285896c5ddc4Srjsuint32_t 285996c5ddc4Srjs_mesa_unmarshal_FramebufferTexture(struct gl_context *ctx, const struct marshal_cmd_FramebufferTexture *cmd, const uint64_t *last) 286096c5ddc4Srjs{ 286196c5ddc4Srjs GLenum target = cmd->target; 286296c5ddc4Srjs GLenum attachment = cmd->attachment; 286396c5ddc4Srjs GLuint texture = cmd->texture; 286496c5ddc4Srjs GLint level = cmd->level; 286596c5ddc4Srjs CALL_FramebufferTexture(ctx->CurrentServerDispatch, (target, attachment, texture, level)); 286696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferTexture), 8) / 8); 286796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 286896c5ddc4Srjs return cmd_size; 286996c5ddc4Srjs} 287096c5ddc4Srjsvoid GLAPIENTRY 287196c5ddc4Srjs_mesa_marshal_FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level) 287296c5ddc4Srjs{ 287396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 287496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_FramebufferTexture); 287596c5ddc4Srjs struct marshal_cmd_FramebufferTexture *cmd; 287696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferTexture, cmd_size); 287796c5ddc4Srjs cmd->target = target; 287896c5ddc4Srjs cmd->attachment = attachment; 287996c5ddc4Srjs cmd->texture = texture; 288096c5ddc4Srjs cmd->level = level; 288196c5ddc4Srjs} 288296c5ddc4Srjs 288396c5ddc4Srjs 288496c5ddc4Srjs/* PrimitiveRestartNV: marshalled asynchronously */ 288596c5ddc4Srjsstruct marshal_cmd_PrimitiveRestartNV 288696c5ddc4Srjs{ 288796c5ddc4Srjs struct marshal_cmd_base cmd_base; 288896c5ddc4Srjs}; 288996c5ddc4Srjsuint32_t 289096c5ddc4Srjs_mesa_unmarshal_PrimitiveRestartNV(struct gl_context *ctx, const struct marshal_cmd_PrimitiveRestartNV *cmd, const uint64_t *last) 289196c5ddc4Srjs{ 289296c5ddc4Srjs CALL_PrimitiveRestartNV(ctx->CurrentServerDispatch, ()); 289396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PrimitiveRestartNV), 8) / 8); 289496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 289596c5ddc4Srjs return cmd_size; 289696c5ddc4Srjs} 289796c5ddc4Srjsvoid GLAPIENTRY 289896c5ddc4Srjs_mesa_marshal_PrimitiveRestartNV(void) 289996c5ddc4Srjs{ 290096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 290196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PrimitiveRestartNV); 290296c5ddc4Srjs struct marshal_cmd_PrimitiveRestartNV *cmd; 290396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PrimitiveRestartNV, cmd_size); 290496c5ddc4Srjs (void) cmd; 290596c5ddc4Srjs} 290696c5ddc4Srjs 290796c5ddc4Srjs 290896c5ddc4Srjs/* BindBufferOffsetEXT: marshalled asynchronously */ 290996c5ddc4Srjsstruct marshal_cmd_BindBufferOffsetEXT 291096c5ddc4Srjs{ 291196c5ddc4Srjs struct marshal_cmd_base cmd_base; 291296c5ddc4Srjs GLenum target; 291396c5ddc4Srjs GLuint index; 291496c5ddc4Srjs GLuint buffer; 291596c5ddc4Srjs GLintptr offset; 291696c5ddc4Srjs}; 291796c5ddc4Srjsuint32_t 291896c5ddc4Srjs_mesa_unmarshal_BindBufferOffsetEXT(struct gl_context *ctx, const struct marshal_cmd_BindBufferOffsetEXT *cmd, const uint64_t *last) 291996c5ddc4Srjs{ 292096c5ddc4Srjs GLenum target = cmd->target; 292196c5ddc4Srjs GLuint index = cmd->index; 292296c5ddc4Srjs GLuint buffer = cmd->buffer; 292396c5ddc4Srjs GLintptr offset = cmd->offset; 292496c5ddc4Srjs CALL_BindBufferOffsetEXT(ctx->CurrentServerDispatch, (target, index, buffer, offset)); 292596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindBufferOffsetEXT), 8) / 8); 292696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 292796c5ddc4Srjs return cmd_size; 292896c5ddc4Srjs} 292996c5ddc4Srjsvoid GLAPIENTRY 293096c5ddc4Srjs_mesa_marshal_BindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset) 293196c5ddc4Srjs{ 293296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 293396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BindBufferOffsetEXT); 293496c5ddc4Srjs struct marshal_cmd_BindBufferOffsetEXT *cmd; 293596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindBufferOffsetEXT, cmd_size); 293696c5ddc4Srjs cmd->target = target; 293796c5ddc4Srjs cmd->index = index; 293896c5ddc4Srjs cmd->buffer = buffer; 293996c5ddc4Srjs cmd->offset = offset; 294096c5ddc4Srjs} 294196c5ddc4Srjs 294296c5ddc4Srjs 294396c5ddc4Srjs/* BindTransformFeedback: marshalled asynchronously */ 294496c5ddc4Srjsstruct marshal_cmd_BindTransformFeedback 294596c5ddc4Srjs{ 294696c5ddc4Srjs struct marshal_cmd_base cmd_base; 294796c5ddc4Srjs GLenum target; 294896c5ddc4Srjs GLuint id; 294996c5ddc4Srjs}; 295096c5ddc4Srjsuint32_t 295196c5ddc4Srjs_mesa_unmarshal_BindTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_BindTransformFeedback *cmd, const uint64_t *last) 295296c5ddc4Srjs{ 295396c5ddc4Srjs GLenum target = cmd->target; 295496c5ddc4Srjs GLuint id = cmd->id; 295596c5ddc4Srjs CALL_BindTransformFeedback(ctx->CurrentServerDispatch, (target, id)); 295696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BindTransformFeedback), 8) / 8); 295796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 295896c5ddc4Srjs return cmd_size; 295996c5ddc4Srjs} 296096c5ddc4Srjsvoid GLAPIENTRY 296196c5ddc4Srjs_mesa_marshal_BindTransformFeedback(GLenum target, GLuint id) 296296c5ddc4Srjs{ 296396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 296496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BindTransformFeedback); 296596c5ddc4Srjs struct marshal_cmd_BindTransformFeedback *cmd; 296696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BindTransformFeedback, cmd_size); 296796c5ddc4Srjs cmd->target = target; 296896c5ddc4Srjs cmd->id = id; 296996c5ddc4Srjs} 297096c5ddc4Srjs 297196c5ddc4Srjs 297296c5ddc4Srjs/* DeleteTransformFeedbacks: marshalled asynchronously */ 297396c5ddc4Srjsstruct marshal_cmd_DeleteTransformFeedbacks 297496c5ddc4Srjs{ 297596c5ddc4Srjs struct marshal_cmd_base cmd_base; 297696c5ddc4Srjs GLsizei n; 297796c5ddc4Srjs /* Next safe_mul(n, 1 * sizeof(GLuint)) bytes are GLuint ids[n] */ 297896c5ddc4Srjs}; 297996c5ddc4Srjsuint32_t 298096c5ddc4Srjs_mesa_unmarshal_DeleteTransformFeedbacks(struct gl_context *ctx, const struct marshal_cmd_DeleteTransformFeedbacks *cmd, const uint64_t *last) 298196c5ddc4Srjs{ 298296c5ddc4Srjs GLsizei n = cmd->n; 298396c5ddc4Srjs GLuint * ids; 298496c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 298596c5ddc4Srjs ids = (GLuint *) variable_data; 298696c5ddc4Srjs CALL_DeleteTransformFeedbacks(ctx->CurrentServerDispatch, (n, ids)); 298796c5ddc4Srjs return cmd->cmd_base.cmd_size; 298896c5ddc4Srjs} 298996c5ddc4Srjsvoid GLAPIENTRY 299096c5ddc4Srjs_mesa_marshal_DeleteTransformFeedbacks(GLsizei n, const GLuint * ids) 299196c5ddc4Srjs{ 299296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 299396c5ddc4Srjs int ids_size = safe_mul(n, 1 * sizeof(GLuint)); 299496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DeleteTransformFeedbacks) + ids_size; 299596c5ddc4Srjs struct marshal_cmd_DeleteTransformFeedbacks *cmd; 299696c5ddc4Srjs if (unlikely(ids_size < 0 || (ids_size > 0 && !ids) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 299796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "DeleteTransformFeedbacks"); 299896c5ddc4Srjs CALL_DeleteTransformFeedbacks(ctx->CurrentServerDispatch, (n, ids)); 299996c5ddc4Srjs return; 300096c5ddc4Srjs } 300196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeleteTransformFeedbacks, cmd_size); 300296c5ddc4Srjs cmd->n = n; 300396c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 300496c5ddc4Srjs memcpy(variable_data, ids, ids_size); 300596c5ddc4Srjs} 300696c5ddc4Srjs 300796c5ddc4Srjs 300896c5ddc4Srjs/* GenTransformFeedbacks: marshalled synchronously */ 300996c5ddc4Srjsvoid GLAPIENTRY 301096c5ddc4Srjs_mesa_marshal_GenTransformFeedbacks(GLsizei n, GLuint * ids) 301196c5ddc4Srjs{ 301296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 301396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GenTransformFeedbacks"); 301496c5ddc4Srjs CALL_GenTransformFeedbacks(ctx->CurrentServerDispatch, (n, ids)); 301596c5ddc4Srjs} 301696c5ddc4Srjs 301796c5ddc4Srjs 301896c5ddc4Srjs/* IsTransformFeedback: marshalled synchronously */ 301996c5ddc4SrjsGLboolean GLAPIENTRY 302096c5ddc4Srjs_mesa_marshal_IsTransformFeedback(GLuint id) 302196c5ddc4Srjs{ 302296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 302396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "IsTransformFeedback"); 302496c5ddc4Srjs return CALL_IsTransformFeedback(ctx->CurrentServerDispatch, (id)); 302596c5ddc4Srjs} 302696c5ddc4Srjs 302796c5ddc4Srjs 302896c5ddc4Srjs/* PauseTransformFeedback: marshalled asynchronously */ 302996c5ddc4Srjsstruct marshal_cmd_PauseTransformFeedback 303096c5ddc4Srjs{ 303196c5ddc4Srjs struct marshal_cmd_base cmd_base; 303296c5ddc4Srjs}; 303396c5ddc4Srjsuint32_t 303496c5ddc4Srjs_mesa_unmarshal_PauseTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_PauseTransformFeedback *cmd, const uint64_t *last) 303596c5ddc4Srjs{ 303696c5ddc4Srjs CALL_PauseTransformFeedback(ctx->CurrentServerDispatch, ()); 303796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PauseTransformFeedback), 8) / 8); 303896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 303996c5ddc4Srjs return cmd_size; 304096c5ddc4Srjs} 304196c5ddc4Srjsvoid GLAPIENTRY 304296c5ddc4Srjs_mesa_marshal_PauseTransformFeedback(void) 304396c5ddc4Srjs{ 304496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 304596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PauseTransformFeedback); 304696c5ddc4Srjs struct marshal_cmd_PauseTransformFeedback *cmd; 304796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PauseTransformFeedback, cmd_size); 304896c5ddc4Srjs (void) cmd; 304996c5ddc4Srjs} 305096c5ddc4Srjs 305196c5ddc4Srjs 305296c5ddc4Srjs/* ResumeTransformFeedback: marshalled asynchronously */ 305396c5ddc4Srjsstruct marshal_cmd_ResumeTransformFeedback 305496c5ddc4Srjs{ 305596c5ddc4Srjs struct marshal_cmd_base cmd_base; 305696c5ddc4Srjs}; 305796c5ddc4Srjsuint32_t 305896c5ddc4Srjs_mesa_unmarshal_ResumeTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_ResumeTransformFeedback *cmd, const uint64_t *last) 305996c5ddc4Srjs{ 306096c5ddc4Srjs CALL_ResumeTransformFeedback(ctx->CurrentServerDispatch, ()); 306196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ResumeTransformFeedback), 8) / 8); 306296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 306396c5ddc4Srjs return cmd_size; 306496c5ddc4Srjs} 306596c5ddc4Srjsvoid GLAPIENTRY 306696c5ddc4Srjs_mesa_marshal_ResumeTransformFeedback(void) 306796c5ddc4Srjs{ 306896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 306996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ResumeTransformFeedback); 307096c5ddc4Srjs struct marshal_cmd_ResumeTransformFeedback *cmd; 307196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ResumeTransformFeedback, cmd_size); 307296c5ddc4Srjs (void) cmd; 307396c5ddc4Srjs} 307496c5ddc4Srjs 307596c5ddc4Srjs 307696c5ddc4Srjs/* DrawTransformFeedback: marshalled asynchronously */ 307796c5ddc4Srjsstruct marshal_cmd_DrawTransformFeedback 307896c5ddc4Srjs{ 307996c5ddc4Srjs struct marshal_cmd_base cmd_base; 308096c5ddc4Srjs GLenum mode; 308196c5ddc4Srjs GLuint id; 308296c5ddc4Srjs}; 308396c5ddc4Srjsuint32_t 308496c5ddc4Srjs_mesa_unmarshal_DrawTransformFeedback(struct gl_context *ctx, const struct marshal_cmd_DrawTransformFeedback *cmd, const uint64_t *last) 308596c5ddc4Srjs{ 308696c5ddc4Srjs GLenum mode = cmd->mode; 308796c5ddc4Srjs GLuint id = cmd->id; 308896c5ddc4Srjs CALL_DrawTransformFeedback(ctx->CurrentServerDispatch, (mode, id)); 308996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTransformFeedback), 8) / 8); 309096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 309196c5ddc4Srjs return cmd_size; 309296c5ddc4Srjs} 309396c5ddc4Srjsvoid GLAPIENTRY 309496c5ddc4Srjs_mesa_marshal_DrawTransformFeedback(GLenum mode, GLuint id) 309596c5ddc4Srjs{ 309696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 309796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTransformFeedback); 309896c5ddc4Srjs struct marshal_cmd_DrawTransformFeedback *cmd; 309996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTransformFeedback, cmd_size); 310096c5ddc4Srjs cmd->mode = mode; 310196c5ddc4Srjs cmd->id = id; 310296c5ddc4Srjs} 310396c5ddc4Srjs 310496c5ddc4Srjs 310596c5ddc4Srjs/* VDPAUInitNV: marshalled synchronously */ 310696c5ddc4Srjsvoid GLAPIENTRY 310796c5ddc4Srjs_mesa_marshal_VDPAUInitNV(const GLvoid * vdpDevice, const GLvoid * getProcAddress) 310896c5ddc4Srjs{ 310996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 311096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VDPAUInitNV"); 311196c5ddc4Srjs CALL_VDPAUInitNV(ctx->CurrentServerDispatch, (vdpDevice, getProcAddress)); 311296c5ddc4Srjs} 311396c5ddc4Srjs 311496c5ddc4Srjs 311596c5ddc4Srjs/* VDPAUFiniNV: marshalled asynchronously */ 311696c5ddc4Srjsstruct marshal_cmd_VDPAUFiniNV 311796c5ddc4Srjs{ 311896c5ddc4Srjs struct marshal_cmd_base cmd_base; 311996c5ddc4Srjs}; 312096c5ddc4Srjsuint32_t 312196c5ddc4Srjs_mesa_unmarshal_VDPAUFiniNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUFiniNV *cmd, const uint64_t *last) 312296c5ddc4Srjs{ 312396c5ddc4Srjs CALL_VDPAUFiniNV(ctx->CurrentServerDispatch, ()); 312496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VDPAUFiniNV), 8) / 8); 312596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 312696c5ddc4Srjs return cmd_size; 312796c5ddc4Srjs} 312896c5ddc4Srjsvoid GLAPIENTRY 312996c5ddc4Srjs_mesa_marshal_VDPAUFiniNV(void) 313096c5ddc4Srjs{ 313196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 313296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VDPAUFiniNV); 313396c5ddc4Srjs struct marshal_cmd_VDPAUFiniNV *cmd; 313496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUFiniNV, cmd_size); 313596c5ddc4Srjs (void) cmd; 313696c5ddc4Srjs} 313796c5ddc4Srjs 313896c5ddc4Srjs 313996c5ddc4Srjs/* VDPAURegisterVideoSurfaceNV: marshalled synchronously */ 314096c5ddc4SrjsGLintptr GLAPIENTRY 314196c5ddc4Srjs_mesa_marshal_VDPAURegisterVideoSurfaceNV(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames) 314296c5ddc4Srjs{ 314396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 314496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VDPAURegisterVideoSurfaceNV"); 314596c5ddc4Srjs return CALL_VDPAURegisterVideoSurfaceNV(ctx->CurrentServerDispatch, (vdpSurface, target, numTextureNames, textureNames)); 314696c5ddc4Srjs} 314796c5ddc4Srjs 314896c5ddc4Srjs 314996c5ddc4Srjs/* VDPAURegisterOutputSurfaceNV: marshalled synchronously */ 315096c5ddc4SrjsGLintptr GLAPIENTRY 315196c5ddc4Srjs_mesa_marshal_VDPAURegisterOutputSurfaceNV(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames) 315296c5ddc4Srjs{ 315396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 315496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VDPAURegisterOutputSurfaceNV"); 315596c5ddc4Srjs return CALL_VDPAURegisterOutputSurfaceNV(ctx->CurrentServerDispatch, (vdpSurface, target, numTextureNames, textureNames)); 315696c5ddc4Srjs} 315796c5ddc4Srjs 315896c5ddc4Srjs 315996c5ddc4Srjs/* VDPAUIsSurfaceNV: marshalled synchronously */ 316096c5ddc4SrjsGLboolean GLAPIENTRY 316196c5ddc4Srjs_mesa_marshal_VDPAUIsSurfaceNV(GLintptr surface) 316296c5ddc4Srjs{ 316396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 316496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VDPAUIsSurfaceNV"); 316596c5ddc4Srjs return CALL_VDPAUIsSurfaceNV(ctx->CurrentServerDispatch, (surface)); 316696c5ddc4Srjs} 316796c5ddc4Srjs 316896c5ddc4Srjs 316996c5ddc4Srjs/* VDPAUUnregisterSurfaceNV: marshalled asynchronously */ 317096c5ddc4Srjsstruct marshal_cmd_VDPAUUnregisterSurfaceNV 317196c5ddc4Srjs{ 317296c5ddc4Srjs struct marshal_cmd_base cmd_base; 317396c5ddc4Srjs GLintptr surface; 317496c5ddc4Srjs}; 317596c5ddc4Srjsuint32_t 317696c5ddc4Srjs_mesa_unmarshal_VDPAUUnregisterSurfaceNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUUnregisterSurfaceNV *cmd, const uint64_t *last) 317796c5ddc4Srjs{ 317896c5ddc4Srjs GLintptr surface = cmd->surface; 317996c5ddc4Srjs CALL_VDPAUUnregisterSurfaceNV(ctx->CurrentServerDispatch, (surface)); 318096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VDPAUUnregisterSurfaceNV), 8) / 8); 318196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 318296c5ddc4Srjs return cmd_size; 318396c5ddc4Srjs} 318496c5ddc4Srjsvoid GLAPIENTRY 318596c5ddc4Srjs_mesa_marshal_VDPAUUnregisterSurfaceNV(GLintptr surface) 318696c5ddc4Srjs{ 318796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 318896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VDPAUUnregisterSurfaceNV); 318996c5ddc4Srjs struct marshal_cmd_VDPAUUnregisterSurfaceNV *cmd; 319096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUUnregisterSurfaceNV, cmd_size); 319196c5ddc4Srjs cmd->surface = surface; 319296c5ddc4Srjs} 319396c5ddc4Srjs 319496c5ddc4Srjs 319596c5ddc4Srjs/* VDPAUGetSurfaceivNV: marshalled synchronously */ 319696c5ddc4Srjsvoid GLAPIENTRY 319796c5ddc4Srjs_mesa_marshal_VDPAUGetSurfaceivNV(GLintptr surface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values) 319896c5ddc4Srjs{ 319996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 320096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VDPAUGetSurfaceivNV"); 320196c5ddc4Srjs CALL_VDPAUGetSurfaceivNV(ctx->CurrentServerDispatch, (surface, pname, bufSize, length, values)); 320296c5ddc4Srjs} 320396c5ddc4Srjs 320496c5ddc4Srjs 320596c5ddc4Srjs/* VDPAUSurfaceAccessNV: marshalled asynchronously */ 320696c5ddc4Srjsstruct marshal_cmd_VDPAUSurfaceAccessNV 320796c5ddc4Srjs{ 320896c5ddc4Srjs struct marshal_cmd_base cmd_base; 320996c5ddc4Srjs GLenum access; 321096c5ddc4Srjs GLintptr surface; 321196c5ddc4Srjs}; 321296c5ddc4Srjsuint32_t 321396c5ddc4Srjs_mesa_unmarshal_VDPAUSurfaceAccessNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUSurfaceAccessNV *cmd, const uint64_t *last) 321496c5ddc4Srjs{ 321596c5ddc4Srjs GLintptr surface = cmd->surface; 321696c5ddc4Srjs GLenum access = cmd->access; 321796c5ddc4Srjs CALL_VDPAUSurfaceAccessNV(ctx->CurrentServerDispatch, (surface, access)); 321896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VDPAUSurfaceAccessNV), 8) / 8); 321996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 322096c5ddc4Srjs return cmd_size; 322196c5ddc4Srjs} 322296c5ddc4Srjsvoid GLAPIENTRY 322396c5ddc4Srjs_mesa_marshal_VDPAUSurfaceAccessNV(GLintptr surface, GLenum access) 322496c5ddc4Srjs{ 322596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 322696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VDPAUSurfaceAccessNV); 322796c5ddc4Srjs struct marshal_cmd_VDPAUSurfaceAccessNV *cmd; 322896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUSurfaceAccessNV, cmd_size); 322996c5ddc4Srjs cmd->surface = surface; 323096c5ddc4Srjs cmd->access = access; 323196c5ddc4Srjs} 323296c5ddc4Srjs 323396c5ddc4Srjs 323496c5ddc4Srjs/* VDPAUMapSurfacesNV: marshalled asynchronously */ 323596c5ddc4Srjsstruct marshal_cmd_VDPAUMapSurfacesNV 323696c5ddc4Srjs{ 323796c5ddc4Srjs struct marshal_cmd_base cmd_base; 323896c5ddc4Srjs GLsizei numSurfaces; 323996c5ddc4Srjs /* Next safe_mul(numSurfaces, 1 * sizeof(GLintptr)) bytes are GLintptr surfaces[numSurfaces] */ 324096c5ddc4Srjs}; 324196c5ddc4Srjsuint32_t 324296c5ddc4Srjs_mesa_unmarshal_VDPAUMapSurfacesNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUMapSurfacesNV *cmd, const uint64_t *last) 324396c5ddc4Srjs{ 324496c5ddc4Srjs GLsizei numSurfaces = cmd->numSurfaces; 324596c5ddc4Srjs GLintptr * surfaces; 324696c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 324796c5ddc4Srjs surfaces = (GLintptr *) variable_data; 324896c5ddc4Srjs CALL_VDPAUMapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces)); 324996c5ddc4Srjs return cmd->cmd_base.cmd_size; 325096c5ddc4Srjs} 325196c5ddc4Srjsvoid GLAPIENTRY 325296c5ddc4Srjs_mesa_marshal_VDPAUMapSurfacesNV(GLsizei numSurfaces, const GLintptr * surfaces) 325396c5ddc4Srjs{ 325496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 325596c5ddc4Srjs int surfaces_size = safe_mul(numSurfaces, 1 * sizeof(GLintptr)); 325696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VDPAUMapSurfacesNV) + surfaces_size; 325796c5ddc4Srjs struct marshal_cmd_VDPAUMapSurfacesNV *cmd; 325896c5ddc4Srjs if (unlikely(surfaces_size < 0 || (surfaces_size > 0 && !surfaces) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 325996c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VDPAUMapSurfacesNV"); 326096c5ddc4Srjs CALL_VDPAUMapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces)); 326196c5ddc4Srjs return; 326296c5ddc4Srjs } 326396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUMapSurfacesNV, cmd_size); 326496c5ddc4Srjs cmd->numSurfaces = numSurfaces; 326596c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 326696c5ddc4Srjs memcpy(variable_data, surfaces, surfaces_size); 326796c5ddc4Srjs} 326896c5ddc4Srjs 326996c5ddc4Srjs 327096c5ddc4Srjs/* VDPAUUnmapSurfacesNV: marshalled asynchronously */ 327196c5ddc4Srjsstruct marshal_cmd_VDPAUUnmapSurfacesNV 327296c5ddc4Srjs{ 327396c5ddc4Srjs struct marshal_cmd_base cmd_base; 327496c5ddc4Srjs GLsizei numSurfaces; 327596c5ddc4Srjs /* Next safe_mul(numSurfaces, 1 * sizeof(GLintptr)) bytes are GLintptr surfaces[numSurfaces] */ 327696c5ddc4Srjs}; 327796c5ddc4Srjsuint32_t 327896c5ddc4Srjs_mesa_unmarshal_VDPAUUnmapSurfacesNV(struct gl_context *ctx, const struct marshal_cmd_VDPAUUnmapSurfacesNV *cmd, const uint64_t *last) 327996c5ddc4Srjs{ 328096c5ddc4Srjs GLsizei numSurfaces = cmd->numSurfaces; 328196c5ddc4Srjs GLintptr * surfaces; 328296c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 328396c5ddc4Srjs surfaces = (GLintptr *) variable_data; 328496c5ddc4Srjs CALL_VDPAUUnmapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces)); 328596c5ddc4Srjs return cmd->cmd_base.cmd_size; 328696c5ddc4Srjs} 328796c5ddc4Srjsvoid GLAPIENTRY 328896c5ddc4Srjs_mesa_marshal_VDPAUUnmapSurfacesNV(GLsizei numSurfaces, const GLintptr * surfaces) 328996c5ddc4Srjs{ 329096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 329196c5ddc4Srjs int surfaces_size = safe_mul(numSurfaces, 1 * sizeof(GLintptr)); 329296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VDPAUUnmapSurfacesNV) + surfaces_size; 329396c5ddc4Srjs struct marshal_cmd_VDPAUUnmapSurfacesNV *cmd; 329496c5ddc4Srjs if (unlikely(surfaces_size < 0 || (surfaces_size > 0 && !surfaces) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 329596c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VDPAUUnmapSurfacesNV"); 329696c5ddc4Srjs CALL_VDPAUUnmapSurfacesNV(ctx->CurrentServerDispatch, (numSurfaces, surfaces)); 329796c5ddc4Srjs return; 329896c5ddc4Srjs } 329996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VDPAUUnmapSurfacesNV, cmd_size); 330096c5ddc4Srjs cmd->numSurfaces = numSurfaces; 330196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 330296c5ddc4Srjs memcpy(variable_data, surfaces, surfaces_size); 330396c5ddc4Srjs} 330496c5ddc4Srjs 330596c5ddc4Srjs 330696c5ddc4Srjs/* GetUnsignedBytevEXT: marshalled synchronously */ 330796c5ddc4Srjsvoid GLAPIENTRY 330896c5ddc4Srjs_mesa_marshal_GetUnsignedBytevEXT(GLenum pname, GLubyte * data) 330996c5ddc4Srjs{ 331096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 331196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetUnsignedBytevEXT"); 331296c5ddc4Srjs CALL_GetUnsignedBytevEXT(ctx->CurrentServerDispatch, (pname, data)); 331396c5ddc4Srjs} 331496c5ddc4Srjs 331596c5ddc4Srjs 331696c5ddc4Srjs/* GetUnsignedBytei_vEXT: marshalled synchronously */ 331796c5ddc4Srjsvoid GLAPIENTRY 331896c5ddc4Srjs_mesa_marshal_GetUnsignedBytei_vEXT(GLenum target, GLuint index, GLubyte * data) 331996c5ddc4Srjs{ 332096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 332196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetUnsignedBytei_vEXT"); 332296c5ddc4Srjs CALL_GetUnsignedBytei_vEXT(ctx->CurrentServerDispatch, (target, index, data)); 332396c5ddc4Srjs} 332496c5ddc4Srjs 332596c5ddc4Srjs 332696c5ddc4Srjs/* DeleteMemoryObjectsEXT: marshalled asynchronously */ 332796c5ddc4Srjsstruct marshal_cmd_DeleteMemoryObjectsEXT 332896c5ddc4Srjs{ 332996c5ddc4Srjs struct marshal_cmd_base cmd_base; 333096c5ddc4Srjs GLsizei n; 333196c5ddc4Srjs /* Next safe_mul(n, 1 * sizeof(GLuint)) bytes are GLuint memoryObjects[n] */ 333296c5ddc4Srjs}; 333396c5ddc4Srjsuint32_t 333496c5ddc4Srjs_mesa_unmarshal_DeleteMemoryObjectsEXT(struct gl_context *ctx, const struct marshal_cmd_DeleteMemoryObjectsEXT *cmd, const uint64_t *last) 333596c5ddc4Srjs{ 333696c5ddc4Srjs GLsizei n = cmd->n; 333796c5ddc4Srjs GLuint * memoryObjects; 333896c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 333996c5ddc4Srjs memoryObjects = (GLuint *) variable_data; 334096c5ddc4Srjs CALL_DeleteMemoryObjectsEXT(ctx->CurrentServerDispatch, (n, memoryObjects)); 334196c5ddc4Srjs return cmd->cmd_base.cmd_size; 334296c5ddc4Srjs} 334396c5ddc4Srjsvoid GLAPIENTRY 334496c5ddc4Srjs_mesa_marshal_DeleteMemoryObjectsEXT(GLsizei n, const GLuint * memoryObjects) 334596c5ddc4Srjs{ 334696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 334796c5ddc4Srjs int memoryObjects_size = safe_mul(n, 1 * sizeof(GLuint)); 334896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DeleteMemoryObjectsEXT) + memoryObjects_size; 334996c5ddc4Srjs struct marshal_cmd_DeleteMemoryObjectsEXT *cmd; 335096c5ddc4Srjs if (unlikely(memoryObjects_size < 0 || (memoryObjects_size > 0 && !memoryObjects) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 335196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "DeleteMemoryObjectsEXT"); 335296c5ddc4Srjs CALL_DeleteMemoryObjectsEXT(ctx->CurrentServerDispatch, (n, memoryObjects)); 335396c5ddc4Srjs return; 335496c5ddc4Srjs } 335596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeleteMemoryObjectsEXT, cmd_size); 335696c5ddc4Srjs cmd->n = n; 335796c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 335896c5ddc4Srjs memcpy(variable_data, memoryObjects, memoryObjects_size); 335996c5ddc4Srjs} 336096c5ddc4Srjs 336196c5ddc4Srjs 336296c5ddc4Srjs/* IsMemoryObjectEXT: marshalled synchronously */ 336396c5ddc4SrjsGLboolean GLAPIENTRY 336496c5ddc4Srjs_mesa_marshal_IsMemoryObjectEXT(GLuint memoryObject) 336596c5ddc4Srjs{ 336696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 336796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "IsMemoryObjectEXT"); 336896c5ddc4Srjs return CALL_IsMemoryObjectEXT(ctx->CurrentServerDispatch, (memoryObject)); 336996c5ddc4Srjs} 337096c5ddc4Srjs 337196c5ddc4Srjs 337296c5ddc4Srjs/* CreateMemoryObjectsEXT: marshalled synchronously */ 337396c5ddc4Srjsvoid GLAPIENTRY 337496c5ddc4Srjs_mesa_marshal_CreateMemoryObjectsEXT(GLsizei n, GLuint * memoryObjects) 337596c5ddc4Srjs{ 337696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 337796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "CreateMemoryObjectsEXT"); 337896c5ddc4Srjs CALL_CreateMemoryObjectsEXT(ctx->CurrentServerDispatch, (n, memoryObjects)); 337996c5ddc4Srjs} 338096c5ddc4Srjs 338196c5ddc4Srjs 338296c5ddc4Srjs/* MemoryObjectParameterivEXT: marshalled asynchronously */ 338396c5ddc4Srjsstruct marshal_cmd_MemoryObjectParameterivEXT 338496c5ddc4Srjs{ 338596c5ddc4Srjs struct marshal_cmd_base cmd_base; 338696c5ddc4Srjs GLuint memoryObject; 338796c5ddc4Srjs GLenum pname; 338896c5ddc4Srjs /* Next safe_mul(_mesa_memobj_enum_to_count(pname), 1 * sizeof(GLint)) bytes are GLint params[_mesa_memobj_enum_to_count(pname)] */ 338996c5ddc4Srjs}; 339096c5ddc4Srjsuint32_t 339196c5ddc4Srjs_mesa_unmarshal_MemoryObjectParameterivEXT(struct gl_context *ctx, const struct marshal_cmd_MemoryObjectParameterivEXT *cmd, const uint64_t *last) 339296c5ddc4Srjs{ 339396c5ddc4Srjs GLuint memoryObject = cmd->memoryObject; 339496c5ddc4Srjs GLenum pname = cmd->pname; 339596c5ddc4Srjs GLint * params; 339696c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 339796c5ddc4Srjs params = (GLint *) variable_data; 339896c5ddc4Srjs CALL_MemoryObjectParameterivEXT(ctx->CurrentServerDispatch, (memoryObject, pname, params)); 339996c5ddc4Srjs return cmd->cmd_base.cmd_size; 340096c5ddc4Srjs} 340196c5ddc4Srjsvoid GLAPIENTRY 340296c5ddc4Srjs_mesa_marshal_MemoryObjectParameterivEXT(GLuint memoryObject, GLenum pname, const GLint * params) 340396c5ddc4Srjs{ 340496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 340596c5ddc4Srjs int params_size = safe_mul(_mesa_memobj_enum_to_count(pname), 1 * sizeof(GLint)); 340696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MemoryObjectParameterivEXT) + params_size; 340796c5ddc4Srjs struct marshal_cmd_MemoryObjectParameterivEXT *cmd; 340896c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 340996c5ddc4Srjs _mesa_glthread_finish_before(ctx, "MemoryObjectParameterivEXT"); 341096c5ddc4Srjs CALL_MemoryObjectParameterivEXT(ctx->CurrentServerDispatch, (memoryObject, pname, params)); 341196c5ddc4Srjs return; 341296c5ddc4Srjs } 341396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MemoryObjectParameterivEXT, cmd_size); 341496c5ddc4Srjs cmd->memoryObject = memoryObject; 341596c5ddc4Srjs cmd->pname = pname; 341696c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 341796c5ddc4Srjs memcpy(variable_data, params, params_size); 341896c5ddc4Srjs} 341996c5ddc4Srjs 342096c5ddc4Srjs 342196c5ddc4Srjs/* GetMemoryObjectParameterivEXT: marshalled synchronously */ 342296c5ddc4Srjsvoid GLAPIENTRY 342396c5ddc4Srjs_mesa_marshal_GetMemoryObjectParameterivEXT(GLuint memoryObject, GLenum pname, GLint * params) 342496c5ddc4Srjs{ 342596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 342696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetMemoryObjectParameterivEXT"); 342796c5ddc4Srjs CALL_GetMemoryObjectParameterivEXT(ctx->CurrentServerDispatch, (memoryObject, pname, params)); 342896c5ddc4Srjs} 342996c5ddc4Srjs 343096c5ddc4Srjs 343196c5ddc4Srjs/* TexStorageMem2DEXT: marshalled asynchronously */ 343296c5ddc4Srjsstruct marshal_cmd_TexStorageMem2DEXT 343396c5ddc4Srjs{ 343496c5ddc4Srjs struct marshal_cmd_base cmd_base; 343596c5ddc4Srjs GLenum target; 343696c5ddc4Srjs GLsizei levels; 343796c5ddc4Srjs GLenum internalFormat; 343896c5ddc4Srjs GLsizei width; 343996c5ddc4Srjs GLsizei height; 344096c5ddc4Srjs GLuint memory; 344196c5ddc4Srjs GLuint64 offset; 344296c5ddc4Srjs}; 344396c5ddc4Srjsuint32_t 344496c5ddc4Srjs_mesa_unmarshal_TexStorageMem2DEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem2DEXT *cmd, const uint64_t *last) 344596c5ddc4Srjs{ 344696c5ddc4Srjs GLenum target = cmd->target; 344796c5ddc4Srjs GLsizei levels = cmd->levels; 344896c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 344996c5ddc4Srjs GLsizei width = cmd->width; 345096c5ddc4Srjs GLsizei height = cmd->height; 345196c5ddc4Srjs GLuint memory = cmd->memory; 345296c5ddc4Srjs GLuint64 offset = cmd->offset; 345396c5ddc4Srjs CALL_TexStorageMem2DEXT(ctx->CurrentServerDispatch, (target, levels, internalFormat, width, height, memory, offset)); 345496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem2DEXT), 8) / 8); 345596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 345696c5ddc4Srjs return cmd_size; 345796c5ddc4Srjs} 345896c5ddc4Srjsvoid GLAPIENTRY 345996c5ddc4Srjs_mesa_marshal_TexStorageMem2DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset) 346096c5ddc4Srjs{ 346196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 346296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexStorageMem2DEXT); 346396c5ddc4Srjs struct marshal_cmd_TexStorageMem2DEXT *cmd; 346496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem2DEXT, cmd_size); 346596c5ddc4Srjs cmd->target = target; 346696c5ddc4Srjs cmd->levels = levels; 346796c5ddc4Srjs cmd->internalFormat = internalFormat; 346896c5ddc4Srjs cmd->width = width; 346996c5ddc4Srjs cmd->height = height; 347096c5ddc4Srjs cmd->memory = memory; 347196c5ddc4Srjs cmd->offset = offset; 347296c5ddc4Srjs} 347396c5ddc4Srjs 347496c5ddc4Srjs 347596c5ddc4Srjs/* TexStorageMem2DMultisampleEXT: marshalled asynchronously */ 347696c5ddc4Srjsstruct marshal_cmd_TexStorageMem2DMultisampleEXT 347796c5ddc4Srjs{ 347896c5ddc4Srjs struct marshal_cmd_base cmd_base; 347996c5ddc4Srjs GLboolean fixedSampleLocations; 348096c5ddc4Srjs GLenum target; 348196c5ddc4Srjs GLsizei samples; 348296c5ddc4Srjs GLenum internalFormat; 348396c5ddc4Srjs GLsizei width; 348496c5ddc4Srjs GLsizei height; 348596c5ddc4Srjs GLuint memory; 348696c5ddc4Srjs GLuint64 offset; 348796c5ddc4Srjs}; 348896c5ddc4Srjsuint32_t 348996c5ddc4Srjs_mesa_unmarshal_TexStorageMem2DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem2DMultisampleEXT *cmd, const uint64_t *last) 349096c5ddc4Srjs{ 349196c5ddc4Srjs GLenum target = cmd->target; 349296c5ddc4Srjs GLsizei samples = cmd->samples; 349396c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 349496c5ddc4Srjs GLsizei width = cmd->width; 349596c5ddc4Srjs GLsizei height = cmd->height; 349696c5ddc4Srjs GLboolean fixedSampleLocations = cmd->fixedSampleLocations; 349796c5ddc4Srjs GLuint memory = cmd->memory; 349896c5ddc4Srjs GLuint64 offset = cmd->offset; 349996c5ddc4Srjs CALL_TexStorageMem2DMultisampleEXT(ctx->CurrentServerDispatch, (target, samples, internalFormat, width, height, fixedSampleLocations, memory, offset)); 350096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem2DMultisampleEXT), 8) / 8); 350196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 350296c5ddc4Srjs return cmd_size; 350396c5ddc4Srjs} 350496c5ddc4Srjsvoid GLAPIENTRY 350596c5ddc4Srjs_mesa_marshal_TexStorageMem2DMultisampleEXT(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) 350696c5ddc4Srjs{ 350796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 350896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexStorageMem2DMultisampleEXT); 350996c5ddc4Srjs struct marshal_cmd_TexStorageMem2DMultisampleEXT *cmd; 351096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem2DMultisampleEXT, cmd_size); 351196c5ddc4Srjs cmd->target = target; 351296c5ddc4Srjs cmd->samples = samples; 351396c5ddc4Srjs cmd->internalFormat = internalFormat; 351496c5ddc4Srjs cmd->width = width; 351596c5ddc4Srjs cmd->height = height; 351696c5ddc4Srjs cmd->fixedSampleLocations = fixedSampleLocations; 351796c5ddc4Srjs cmd->memory = memory; 351896c5ddc4Srjs cmd->offset = offset; 351996c5ddc4Srjs} 352096c5ddc4Srjs 352196c5ddc4Srjs 352296c5ddc4Srjs/* TexStorageMem3DEXT: marshalled asynchronously */ 352396c5ddc4Srjsstruct marshal_cmd_TexStorageMem3DEXT 352496c5ddc4Srjs{ 352596c5ddc4Srjs struct marshal_cmd_base cmd_base; 352696c5ddc4Srjs GLenum target; 352796c5ddc4Srjs GLsizei levels; 352896c5ddc4Srjs GLenum internalFormat; 352996c5ddc4Srjs GLsizei width; 353096c5ddc4Srjs GLsizei height; 353196c5ddc4Srjs GLsizei depth; 353296c5ddc4Srjs GLuint memory; 353396c5ddc4Srjs GLuint64 offset; 353496c5ddc4Srjs}; 353596c5ddc4Srjsuint32_t 353696c5ddc4Srjs_mesa_unmarshal_TexStorageMem3DEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem3DEXT *cmd, const uint64_t *last) 353796c5ddc4Srjs{ 353896c5ddc4Srjs GLenum target = cmd->target; 353996c5ddc4Srjs GLsizei levels = cmd->levels; 354096c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 354196c5ddc4Srjs GLsizei width = cmd->width; 354296c5ddc4Srjs GLsizei height = cmd->height; 354396c5ddc4Srjs GLsizei depth = cmd->depth; 354496c5ddc4Srjs GLuint memory = cmd->memory; 354596c5ddc4Srjs GLuint64 offset = cmd->offset; 354696c5ddc4Srjs CALL_TexStorageMem3DEXT(ctx->CurrentServerDispatch, (target, levels, internalFormat, width, height, depth, memory, offset)); 354796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem3DEXT), 8) / 8); 354896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 354996c5ddc4Srjs return cmd_size; 355096c5ddc4Srjs} 355196c5ddc4Srjsvoid GLAPIENTRY 355296c5ddc4Srjs_mesa_marshal_TexStorageMem3DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset) 355396c5ddc4Srjs{ 355496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 355596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexStorageMem3DEXT); 355696c5ddc4Srjs struct marshal_cmd_TexStorageMem3DEXT *cmd; 355796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem3DEXT, cmd_size); 355896c5ddc4Srjs cmd->target = target; 355996c5ddc4Srjs cmd->levels = levels; 356096c5ddc4Srjs cmd->internalFormat = internalFormat; 356196c5ddc4Srjs cmd->width = width; 356296c5ddc4Srjs cmd->height = height; 356396c5ddc4Srjs cmd->depth = depth; 356496c5ddc4Srjs cmd->memory = memory; 356596c5ddc4Srjs cmd->offset = offset; 356696c5ddc4Srjs} 356796c5ddc4Srjs 356896c5ddc4Srjs 356996c5ddc4Srjs/* TexStorageMem3DMultisampleEXT: marshalled asynchronously */ 357096c5ddc4Srjsstruct marshal_cmd_TexStorageMem3DMultisampleEXT 357196c5ddc4Srjs{ 357296c5ddc4Srjs struct marshal_cmd_base cmd_base; 357396c5ddc4Srjs GLboolean fixedSampleLocations; 357496c5ddc4Srjs GLenum target; 357596c5ddc4Srjs GLsizei samples; 357696c5ddc4Srjs GLenum internalFormat; 357796c5ddc4Srjs GLsizei width; 357896c5ddc4Srjs GLsizei height; 357996c5ddc4Srjs GLsizei depth; 358096c5ddc4Srjs GLuint memory; 358196c5ddc4Srjs GLuint64 offset; 358296c5ddc4Srjs}; 358396c5ddc4Srjsuint32_t 358496c5ddc4Srjs_mesa_unmarshal_TexStorageMem3DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem3DMultisampleEXT *cmd, const uint64_t *last) 358596c5ddc4Srjs{ 358696c5ddc4Srjs GLenum target = cmd->target; 358796c5ddc4Srjs GLsizei samples = cmd->samples; 358896c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 358996c5ddc4Srjs GLsizei width = cmd->width; 359096c5ddc4Srjs GLsizei height = cmd->height; 359196c5ddc4Srjs GLsizei depth = cmd->depth; 359296c5ddc4Srjs GLboolean fixedSampleLocations = cmd->fixedSampleLocations; 359396c5ddc4Srjs GLuint memory = cmd->memory; 359496c5ddc4Srjs GLuint64 offset = cmd->offset; 359596c5ddc4Srjs CALL_TexStorageMem3DMultisampleEXT(ctx->CurrentServerDispatch, (target, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, offset)); 359696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem3DMultisampleEXT), 8) / 8); 359796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 359896c5ddc4Srjs return cmd_size; 359996c5ddc4Srjs} 360096c5ddc4Srjsvoid GLAPIENTRY 360196c5ddc4Srjs_mesa_marshal_TexStorageMem3DMultisampleEXT(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) 360296c5ddc4Srjs{ 360396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 360496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexStorageMem3DMultisampleEXT); 360596c5ddc4Srjs struct marshal_cmd_TexStorageMem3DMultisampleEXT *cmd; 360696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem3DMultisampleEXT, cmd_size); 360796c5ddc4Srjs cmd->target = target; 360896c5ddc4Srjs cmd->samples = samples; 360996c5ddc4Srjs cmd->internalFormat = internalFormat; 361096c5ddc4Srjs cmd->width = width; 361196c5ddc4Srjs cmd->height = height; 361296c5ddc4Srjs cmd->depth = depth; 361396c5ddc4Srjs cmd->fixedSampleLocations = fixedSampleLocations; 361496c5ddc4Srjs cmd->memory = memory; 361596c5ddc4Srjs cmd->offset = offset; 361696c5ddc4Srjs} 361796c5ddc4Srjs 361896c5ddc4Srjs 361996c5ddc4Srjs/* BufferStorageMemEXT: marshalled asynchronously */ 362096c5ddc4Srjsstruct marshal_cmd_BufferStorageMemEXT 362196c5ddc4Srjs{ 362296c5ddc4Srjs struct marshal_cmd_base cmd_base; 362396c5ddc4Srjs GLenum target; 362496c5ddc4Srjs GLuint memory; 362596c5ddc4Srjs GLsizeiptr size; 362696c5ddc4Srjs GLuint64 offset; 362796c5ddc4Srjs}; 362896c5ddc4Srjsuint32_t 362996c5ddc4Srjs_mesa_unmarshal_BufferStorageMemEXT(struct gl_context *ctx, const struct marshal_cmd_BufferStorageMemEXT *cmd, const uint64_t *last) 363096c5ddc4Srjs{ 363196c5ddc4Srjs GLenum target = cmd->target; 363296c5ddc4Srjs GLsizeiptr size = cmd->size; 363396c5ddc4Srjs GLuint memory = cmd->memory; 363496c5ddc4Srjs GLuint64 offset = cmd->offset; 363596c5ddc4Srjs CALL_BufferStorageMemEXT(ctx->CurrentServerDispatch, (target, size, memory, offset)); 363696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_BufferStorageMemEXT), 8) / 8); 363796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 363896c5ddc4Srjs return cmd_size; 363996c5ddc4Srjs} 364096c5ddc4Srjsvoid GLAPIENTRY 364196c5ddc4Srjs_mesa_marshal_BufferStorageMemEXT(GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset) 364296c5ddc4Srjs{ 364396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 364496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_BufferStorageMemEXT); 364596c5ddc4Srjs struct marshal_cmd_BufferStorageMemEXT *cmd; 364696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_BufferStorageMemEXT, cmd_size); 364796c5ddc4Srjs cmd->target = target; 364896c5ddc4Srjs cmd->size = size; 364996c5ddc4Srjs cmd->memory = memory; 365096c5ddc4Srjs cmd->offset = offset; 365196c5ddc4Srjs} 365296c5ddc4Srjs 365396c5ddc4Srjs 365496c5ddc4Srjs/* TextureStorageMem2DEXT: marshalled asynchronously */ 365596c5ddc4Srjsstruct marshal_cmd_TextureStorageMem2DEXT 365696c5ddc4Srjs{ 365796c5ddc4Srjs struct marshal_cmd_base cmd_base; 365896c5ddc4Srjs GLenum texture; 365996c5ddc4Srjs GLsizei levels; 366096c5ddc4Srjs GLenum internalFormat; 366196c5ddc4Srjs GLsizei width; 366296c5ddc4Srjs GLsizei height; 366396c5ddc4Srjs GLuint memory; 366496c5ddc4Srjs GLuint64 offset; 366596c5ddc4Srjs}; 366696c5ddc4Srjsuint32_t 366796c5ddc4Srjs_mesa_unmarshal_TextureStorageMem2DEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem2DEXT *cmd, const uint64_t *last) 366896c5ddc4Srjs{ 366996c5ddc4Srjs GLenum texture = cmd->texture; 367096c5ddc4Srjs GLsizei levels = cmd->levels; 367196c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 367296c5ddc4Srjs GLsizei width = cmd->width; 367396c5ddc4Srjs GLsizei height = cmd->height; 367496c5ddc4Srjs GLuint memory = cmd->memory; 367596c5ddc4Srjs GLuint64 offset = cmd->offset; 367696c5ddc4Srjs CALL_TextureStorageMem2DEXT(ctx->CurrentServerDispatch, (texture, levels, internalFormat, width, height, memory, offset)); 367796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem2DEXT), 8) / 8); 367896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 367996c5ddc4Srjs return cmd_size; 368096c5ddc4Srjs} 368196c5ddc4Srjsvoid GLAPIENTRY 368296c5ddc4Srjs_mesa_marshal_TextureStorageMem2DEXT(GLenum texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset) 368396c5ddc4Srjs{ 368496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 368596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem2DEXT); 368696c5ddc4Srjs struct marshal_cmd_TextureStorageMem2DEXT *cmd; 368796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem2DEXT, cmd_size); 368896c5ddc4Srjs cmd->texture = texture; 368996c5ddc4Srjs cmd->levels = levels; 369096c5ddc4Srjs cmd->internalFormat = internalFormat; 369196c5ddc4Srjs cmd->width = width; 369296c5ddc4Srjs cmd->height = height; 369396c5ddc4Srjs cmd->memory = memory; 369496c5ddc4Srjs cmd->offset = offset; 369596c5ddc4Srjs} 369696c5ddc4Srjs 369796c5ddc4Srjs 369896c5ddc4Srjs/* TextureStorageMem2DMultisampleEXT: marshalled asynchronously */ 369996c5ddc4Srjsstruct marshal_cmd_TextureStorageMem2DMultisampleEXT 370096c5ddc4Srjs{ 370196c5ddc4Srjs struct marshal_cmd_base cmd_base; 370296c5ddc4Srjs GLboolean fixedSampleLocations; 370396c5ddc4Srjs GLuint texture; 370496c5ddc4Srjs GLsizei samples; 370596c5ddc4Srjs GLenum internalFormat; 370696c5ddc4Srjs GLsizei width; 370796c5ddc4Srjs GLsizei height; 370896c5ddc4Srjs GLuint memory; 370996c5ddc4Srjs GLuint64 offset; 371096c5ddc4Srjs}; 371196c5ddc4Srjsuint32_t 371296c5ddc4Srjs_mesa_unmarshal_TextureStorageMem2DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem2DMultisampleEXT *cmd, const uint64_t *last) 371396c5ddc4Srjs{ 371496c5ddc4Srjs GLuint texture = cmd->texture; 371596c5ddc4Srjs GLsizei samples = cmd->samples; 371696c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 371796c5ddc4Srjs GLsizei width = cmd->width; 371896c5ddc4Srjs GLsizei height = cmd->height; 371996c5ddc4Srjs GLboolean fixedSampleLocations = cmd->fixedSampleLocations; 372096c5ddc4Srjs GLuint memory = cmd->memory; 372196c5ddc4Srjs GLuint64 offset = cmd->offset; 372296c5ddc4Srjs CALL_TextureStorageMem2DMultisampleEXT(ctx->CurrentServerDispatch, (texture, samples, internalFormat, width, height, fixedSampleLocations, memory, offset)); 372396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem2DMultisampleEXT), 8) / 8); 372496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 372596c5ddc4Srjs return cmd_size; 372696c5ddc4Srjs} 372796c5ddc4Srjsvoid GLAPIENTRY 372896c5ddc4Srjs_mesa_marshal_TextureStorageMem2DMultisampleEXT(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) 372996c5ddc4Srjs{ 373096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 373196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem2DMultisampleEXT); 373296c5ddc4Srjs struct marshal_cmd_TextureStorageMem2DMultisampleEXT *cmd; 373396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem2DMultisampleEXT, cmd_size); 373496c5ddc4Srjs cmd->texture = texture; 373596c5ddc4Srjs cmd->samples = samples; 373696c5ddc4Srjs cmd->internalFormat = internalFormat; 373796c5ddc4Srjs cmd->width = width; 373896c5ddc4Srjs cmd->height = height; 373996c5ddc4Srjs cmd->fixedSampleLocations = fixedSampleLocations; 374096c5ddc4Srjs cmd->memory = memory; 374196c5ddc4Srjs cmd->offset = offset; 374296c5ddc4Srjs} 374396c5ddc4Srjs 374496c5ddc4Srjs 374596c5ddc4Srjs/* TextureStorageMem3DEXT: marshalled asynchronously */ 374696c5ddc4Srjsstruct marshal_cmd_TextureStorageMem3DEXT 374796c5ddc4Srjs{ 374896c5ddc4Srjs struct marshal_cmd_base cmd_base; 374996c5ddc4Srjs GLuint texture; 375096c5ddc4Srjs GLsizei levels; 375196c5ddc4Srjs GLenum internalFormat; 375296c5ddc4Srjs GLsizei width; 375396c5ddc4Srjs GLsizei height; 375496c5ddc4Srjs GLsizei depth; 375596c5ddc4Srjs GLuint memory; 375696c5ddc4Srjs GLuint64 offset; 375796c5ddc4Srjs}; 375896c5ddc4Srjsuint32_t 375996c5ddc4Srjs_mesa_unmarshal_TextureStorageMem3DEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem3DEXT *cmd, const uint64_t *last) 376096c5ddc4Srjs{ 376196c5ddc4Srjs GLuint texture = cmd->texture; 376296c5ddc4Srjs GLsizei levels = cmd->levels; 376396c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 376496c5ddc4Srjs GLsizei width = cmd->width; 376596c5ddc4Srjs GLsizei height = cmd->height; 376696c5ddc4Srjs GLsizei depth = cmd->depth; 376796c5ddc4Srjs GLuint memory = cmd->memory; 376896c5ddc4Srjs GLuint64 offset = cmd->offset; 376996c5ddc4Srjs CALL_TextureStorageMem3DEXT(ctx->CurrentServerDispatch, (texture, levels, internalFormat, width, height, depth, memory, offset)); 377096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem3DEXT), 8) / 8); 377196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 377296c5ddc4Srjs return cmd_size; 377396c5ddc4Srjs} 377496c5ddc4Srjsvoid GLAPIENTRY 377596c5ddc4Srjs_mesa_marshal_TextureStorageMem3DEXT(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset) 377696c5ddc4Srjs{ 377796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 377896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem3DEXT); 377996c5ddc4Srjs struct marshal_cmd_TextureStorageMem3DEXT *cmd; 378096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem3DEXT, cmd_size); 378196c5ddc4Srjs cmd->texture = texture; 378296c5ddc4Srjs cmd->levels = levels; 378396c5ddc4Srjs cmd->internalFormat = internalFormat; 378496c5ddc4Srjs cmd->width = width; 378596c5ddc4Srjs cmd->height = height; 378696c5ddc4Srjs cmd->depth = depth; 378796c5ddc4Srjs cmd->memory = memory; 378896c5ddc4Srjs cmd->offset = offset; 378996c5ddc4Srjs} 379096c5ddc4Srjs 379196c5ddc4Srjs 379296c5ddc4Srjs/* TextureStorageMem3DMultisampleEXT: marshalled asynchronously */ 379396c5ddc4Srjsstruct marshal_cmd_TextureStorageMem3DMultisampleEXT 379496c5ddc4Srjs{ 379596c5ddc4Srjs struct marshal_cmd_base cmd_base; 379696c5ddc4Srjs GLboolean fixedSampleLocations; 379796c5ddc4Srjs GLuint texture; 379896c5ddc4Srjs GLsizei samples; 379996c5ddc4Srjs GLenum internalFormat; 380096c5ddc4Srjs GLsizei width; 380196c5ddc4Srjs GLsizei height; 380296c5ddc4Srjs GLsizei depth; 380396c5ddc4Srjs GLuint memory; 380496c5ddc4Srjs GLuint64 offset; 380596c5ddc4Srjs}; 380696c5ddc4Srjsuint32_t 380796c5ddc4Srjs_mesa_unmarshal_TextureStorageMem3DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem3DMultisampleEXT *cmd, const uint64_t *last) 380896c5ddc4Srjs{ 380996c5ddc4Srjs GLuint texture = cmd->texture; 381096c5ddc4Srjs GLsizei samples = cmd->samples; 381196c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 381296c5ddc4Srjs GLsizei width = cmd->width; 381396c5ddc4Srjs GLsizei height = cmd->height; 381496c5ddc4Srjs GLsizei depth = cmd->depth; 381596c5ddc4Srjs GLboolean fixedSampleLocations = cmd->fixedSampleLocations; 381696c5ddc4Srjs GLuint memory = cmd->memory; 381796c5ddc4Srjs GLuint64 offset = cmd->offset; 381896c5ddc4Srjs CALL_TextureStorageMem3DMultisampleEXT(ctx->CurrentServerDispatch, (texture, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, offset)); 381996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem3DMultisampleEXT), 8) / 8); 382096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 382196c5ddc4Srjs return cmd_size; 382296c5ddc4Srjs} 382396c5ddc4Srjsvoid GLAPIENTRY 382496c5ddc4Srjs_mesa_marshal_TextureStorageMem3DMultisampleEXT(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset) 382596c5ddc4Srjs{ 382696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 382796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem3DMultisampleEXT); 382896c5ddc4Srjs struct marshal_cmd_TextureStorageMem3DMultisampleEXT *cmd; 382996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem3DMultisampleEXT, cmd_size); 383096c5ddc4Srjs cmd->texture = texture; 383196c5ddc4Srjs cmd->samples = samples; 383296c5ddc4Srjs cmd->internalFormat = internalFormat; 383396c5ddc4Srjs cmd->width = width; 383496c5ddc4Srjs cmd->height = height; 383596c5ddc4Srjs cmd->depth = depth; 383696c5ddc4Srjs cmd->fixedSampleLocations = fixedSampleLocations; 383796c5ddc4Srjs cmd->memory = memory; 383896c5ddc4Srjs cmd->offset = offset; 383996c5ddc4Srjs} 384096c5ddc4Srjs 384196c5ddc4Srjs 384296c5ddc4Srjs/* NamedBufferStorageMemEXT: marshalled asynchronously */ 384396c5ddc4Srjsstruct marshal_cmd_NamedBufferStorageMemEXT 384496c5ddc4Srjs{ 384596c5ddc4Srjs struct marshal_cmd_base cmd_base; 384696c5ddc4Srjs GLuint buffer; 384796c5ddc4Srjs GLuint memory; 384896c5ddc4Srjs GLsizeiptr size; 384996c5ddc4Srjs GLuint64 offset; 385096c5ddc4Srjs}; 385196c5ddc4Srjsuint32_t 385296c5ddc4Srjs_mesa_unmarshal_NamedBufferStorageMemEXT(struct gl_context *ctx, const struct marshal_cmd_NamedBufferStorageMemEXT *cmd, const uint64_t *last) 385396c5ddc4Srjs{ 385496c5ddc4Srjs GLuint buffer = cmd->buffer; 385596c5ddc4Srjs GLsizeiptr size = cmd->size; 385696c5ddc4Srjs GLuint memory = cmd->memory; 385796c5ddc4Srjs GLuint64 offset = cmd->offset; 385896c5ddc4Srjs CALL_NamedBufferStorageMemEXT(ctx->CurrentServerDispatch, (buffer, size, memory, offset)); 385996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_NamedBufferStorageMemEXT), 8) / 8); 386096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 386196c5ddc4Srjs return cmd_size; 386296c5ddc4Srjs} 386396c5ddc4Srjsvoid GLAPIENTRY 386496c5ddc4Srjs_mesa_marshal_NamedBufferStorageMemEXT(GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset) 386596c5ddc4Srjs{ 386696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 386796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_NamedBufferStorageMemEXT); 386896c5ddc4Srjs struct marshal_cmd_NamedBufferStorageMemEXT *cmd; 386996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_NamedBufferStorageMemEXT, cmd_size); 387096c5ddc4Srjs cmd->buffer = buffer; 387196c5ddc4Srjs cmd->size = size; 387296c5ddc4Srjs cmd->memory = memory; 387396c5ddc4Srjs cmd->offset = offset; 387496c5ddc4Srjs} 387596c5ddc4Srjs 387696c5ddc4Srjs 387796c5ddc4Srjs/* TexStorageMem1DEXT: marshalled asynchronously */ 387896c5ddc4Srjsstruct marshal_cmd_TexStorageMem1DEXT 387996c5ddc4Srjs{ 388096c5ddc4Srjs struct marshal_cmd_base cmd_base; 388196c5ddc4Srjs GLenum target; 388296c5ddc4Srjs GLsizei levels; 388396c5ddc4Srjs GLenum internalFormat; 388496c5ddc4Srjs GLsizei width; 388596c5ddc4Srjs GLuint memory; 388696c5ddc4Srjs GLuint64 offset; 388796c5ddc4Srjs}; 388896c5ddc4Srjsuint32_t 388996c5ddc4Srjs_mesa_unmarshal_TexStorageMem1DEXT(struct gl_context *ctx, const struct marshal_cmd_TexStorageMem1DEXT *cmd, const uint64_t *last) 389096c5ddc4Srjs{ 389196c5ddc4Srjs GLenum target = cmd->target; 389296c5ddc4Srjs GLsizei levels = cmd->levels; 389396c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 389496c5ddc4Srjs GLsizei width = cmd->width; 389596c5ddc4Srjs GLuint memory = cmd->memory; 389696c5ddc4Srjs GLuint64 offset = cmd->offset; 389796c5ddc4Srjs CALL_TexStorageMem1DEXT(ctx->CurrentServerDispatch, (target, levels, internalFormat, width, memory, offset)); 389896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexStorageMem1DEXT), 8) / 8); 389996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 390096c5ddc4Srjs return cmd_size; 390196c5ddc4Srjs} 390296c5ddc4Srjsvoid GLAPIENTRY 390396c5ddc4Srjs_mesa_marshal_TexStorageMem1DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset) 390496c5ddc4Srjs{ 390596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 390696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexStorageMem1DEXT); 390796c5ddc4Srjs struct marshal_cmd_TexStorageMem1DEXT *cmd; 390896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexStorageMem1DEXT, cmd_size); 390996c5ddc4Srjs cmd->target = target; 391096c5ddc4Srjs cmd->levels = levels; 391196c5ddc4Srjs cmd->internalFormat = internalFormat; 391296c5ddc4Srjs cmd->width = width; 391396c5ddc4Srjs cmd->memory = memory; 391496c5ddc4Srjs cmd->offset = offset; 391596c5ddc4Srjs} 391696c5ddc4Srjs 391796c5ddc4Srjs 391896c5ddc4Srjs/* TextureStorageMem1DEXT: marshalled asynchronously */ 391996c5ddc4Srjsstruct marshal_cmd_TextureStorageMem1DEXT 392096c5ddc4Srjs{ 392196c5ddc4Srjs struct marshal_cmd_base cmd_base; 392296c5ddc4Srjs GLuint texture; 392396c5ddc4Srjs GLsizei levels; 392496c5ddc4Srjs GLenum internalFormat; 392596c5ddc4Srjs GLsizei width; 392696c5ddc4Srjs GLuint memory; 392796c5ddc4Srjs GLuint64 offset; 392896c5ddc4Srjs}; 392996c5ddc4Srjsuint32_t 393096c5ddc4Srjs_mesa_unmarshal_TextureStorageMem1DEXT(struct gl_context *ctx, const struct marshal_cmd_TextureStorageMem1DEXT *cmd, const uint64_t *last) 393196c5ddc4Srjs{ 393296c5ddc4Srjs GLuint texture = cmd->texture; 393396c5ddc4Srjs GLsizei levels = cmd->levels; 393496c5ddc4Srjs GLenum internalFormat = cmd->internalFormat; 393596c5ddc4Srjs GLsizei width = cmd->width; 393696c5ddc4Srjs GLuint memory = cmd->memory; 393796c5ddc4Srjs GLuint64 offset = cmd->offset; 393896c5ddc4Srjs CALL_TextureStorageMem1DEXT(ctx->CurrentServerDispatch, (texture, levels, internalFormat, width, memory, offset)); 393996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TextureStorageMem1DEXT), 8) / 8); 394096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 394196c5ddc4Srjs return cmd_size; 394296c5ddc4Srjs} 394396c5ddc4Srjsvoid GLAPIENTRY 394496c5ddc4Srjs_mesa_marshal_TextureStorageMem1DEXT(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset) 394596c5ddc4Srjs{ 394696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 394796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TextureStorageMem1DEXT); 394896c5ddc4Srjs struct marshal_cmd_TextureStorageMem1DEXT *cmd; 394996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TextureStorageMem1DEXT, cmd_size); 395096c5ddc4Srjs cmd->texture = texture; 395196c5ddc4Srjs cmd->levels = levels; 395296c5ddc4Srjs cmd->internalFormat = internalFormat; 395396c5ddc4Srjs cmd->width = width; 395496c5ddc4Srjs cmd->memory = memory; 395596c5ddc4Srjs cmd->offset = offset; 395696c5ddc4Srjs} 395796c5ddc4Srjs 395896c5ddc4Srjs 395996c5ddc4Srjs/* GenSemaphoresEXT: marshalled synchronously */ 396096c5ddc4Srjsvoid GLAPIENTRY 396196c5ddc4Srjs_mesa_marshal_GenSemaphoresEXT(GLsizei n, GLuint * semaphores) 396296c5ddc4Srjs{ 396396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 396496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GenSemaphoresEXT"); 396596c5ddc4Srjs CALL_GenSemaphoresEXT(ctx->CurrentServerDispatch, (n, semaphores)); 396696c5ddc4Srjs} 396796c5ddc4Srjs 396896c5ddc4Srjs 396996c5ddc4Srjs/* DeleteSemaphoresEXT: marshalled asynchronously */ 397096c5ddc4Srjsstruct marshal_cmd_DeleteSemaphoresEXT 397196c5ddc4Srjs{ 397296c5ddc4Srjs struct marshal_cmd_base cmd_base; 397396c5ddc4Srjs GLsizei n; 397496c5ddc4Srjs /* Next safe_mul(n, 1 * sizeof(GLuint)) bytes are GLuint semaphores[n] */ 397596c5ddc4Srjs}; 397696c5ddc4Srjsuint32_t 397796c5ddc4Srjs_mesa_unmarshal_DeleteSemaphoresEXT(struct gl_context *ctx, const struct marshal_cmd_DeleteSemaphoresEXT *cmd, const uint64_t *last) 397896c5ddc4Srjs{ 397996c5ddc4Srjs GLsizei n = cmd->n; 398096c5ddc4Srjs GLuint * semaphores; 398196c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 398296c5ddc4Srjs semaphores = (GLuint *) variable_data; 398396c5ddc4Srjs CALL_DeleteSemaphoresEXT(ctx->CurrentServerDispatch, (n, semaphores)); 398496c5ddc4Srjs return cmd->cmd_base.cmd_size; 398596c5ddc4Srjs} 398696c5ddc4Srjsvoid GLAPIENTRY 398796c5ddc4Srjs_mesa_marshal_DeleteSemaphoresEXT(GLsizei n, const GLuint * semaphores) 398896c5ddc4Srjs{ 398996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 399096c5ddc4Srjs int semaphores_size = safe_mul(n, 1 * sizeof(GLuint)); 399196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DeleteSemaphoresEXT) + semaphores_size; 399296c5ddc4Srjs struct marshal_cmd_DeleteSemaphoresEXT *cmd; 399396c5ddc4Srjs if (unlikely(semaphores_size < 0 || (semaphores_size > 0 && !semaphores) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 399496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "DeleteSemaphoresEXT"); 399596c5ddc4Srjs CALL_DeleteSemaphoresEXT(ctx->CurrentServerDispatch, (n, semaphores)); 399696c5ddc4Srjs return; 399796c5ddc4Srjs } 399896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DeleteSemaphoresEXT, cmd_size); 399996c5ddc4Srjs cmd->n = n; 400096c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 400196c5ddc4Srjs memcpy(variable_data, semaphores, semaphores_size); 400296c5ddc4Srjs} 400396c5ddc4Srjs 400496c5ddc4Srjs 400596c5ddc4Srjs/* IsSemaphoreEXT: marshalled synchronously */ 400696c5ddc4SrjsGLboolean GLAPIENTRY 400796c5ddc4Srjs_mesa_marshal_IsSemaphoreEXT(GLuint semaphore) 400896c5ddc4Srjs{ 400996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 401096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "IsSemaphoreEXT"); 401196c5ddc4Srjs return CALL_IsSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore)); 401296c5ddc4Srjs} 401396c5ddc4Srjs 401496c5ddc4Srjs 401596c5ddc4Srjs/* SemaphoreParameterui64vEXT: marshalled asynchronously */ 401696c5ddc4Srjsstruct marshal_cmd_SemaphoreParameterui64vEXT 401796c5ddc4Srjs{ 401896c5ddc4Srjs struct marshal_cmd_base cmd_base; 401996c5ddc4Srjs GLuint semaphore; 402096c5ddc4Srjs GLenum pname; 402196c5ddc4Srjs /* Next safe_mul(_mesa_semaphore_enum_to_count(pname), 1 * sizeof(GLuint64)) bytes are GLuint64 params[_mesa_semaphore_enum_to_count(pname)] */ 402296c5ddc4Srjs}; 402396c5ddc4Srjsuint32_t 402496c5ddc4Srjs_mesa_unmarshal_SemaphoreParameterui64vEXT(struct gl_context *ctx, const struct marshal_cmd_SemaphoreParameterui64vEXT *cmd, const uint64_t *last) 402596c5ddc4Srjs{ 402696c5ddc4Srjs GLuint semaphore = cmd->semaphore; 402796c5ddc4Srjs GLenum pname = cmd->pname; 402896c5ddc4Srjs GLuint64 * params; 402996c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 403096c5ddc4Srjs params = (GLuint64 *) variable_data; 403196c5ddc4Srjs CALL_SemaphoreParameterui64vEXT(ctx->CurrentServerDispatch, (semaphore, pname, params)); 403296c5ddc4Srjs return cmd->cmd_base.cmd_size; 403396c5ddc4Srjs} 403496c5ddc4Srjsvoid GLAPIENTRY 403596c5ddc4Srjs_mesa_marshal_SemaphoreParameterui64vEXT(GLuint semaphore, GLenum pname, const GLuint64 * params) 403696c5ddc4Srjs{ 403796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 403896c5ddc4Srjs int params_size = safe_mul(_mesa_semaphore_enum_to_count(pname), 1 * sizeof(GLuint64)); 403996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_SemaphoreParameterui64vEXT) + params_size; 404096c5ddc4Srjs struct marshal_cmd_SemaphoreParameterui64vEXT *cmd; 404196c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 404296c5ddc4Srjs _mesa_glthread_finish_before(ctx, "SemaphoreParameterui64vEXT"); 404396c5ddc4Srjs CALL_SemaphoreParameterui64vEXT(ctx->CurrentServerDispatch, (semaphore, pname, params)); 404496c5ddc4Srjs return; 404596c5ddc4Srjs } 404696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SemaphoreParameterui64vEXT, cmd_size); 404796c5ddc4Srjs cmd->semaphore = semaphore; 404896c5ddc4Srjs cmd->pname = pname; 404996c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 405096c5ddc4Srjs memcpy(variable_data, params, params_size); 405196c5ddc4Srjs} 405296c5ddc4Srjs 405396c5ddc4Srjs 405496c5ddc4Srjs/* GetSemaphoreParameterui64vEXT: marshalled synchronously */ 405596c5ddc4Srjsvoid GLAPIENTRY 405696c5ddc4Srjs_mesa_marshal_GetSemaphoreParameterui64vEXT(GLuint semaphore, GLenum pname, GLuint64 * params) 405796c5ddc4Srjs{ 405896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 405996c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetSemaphoreParameterui64vEXT"); 406096c5ddc4Srjs CALL_GetSemaphoreParameterui64vEXT(ctx->CurrentServerDispatch, (semaphore, pname, params)); 406196c5ddc4Srjs} 406296c5ddc4Srjs 406396c5ddc4Srjs 406496c5ddc4Srjs/* WaitSemaphoreEXT: marshalled asynchronously */ 406596c5ddc4Srjsstruct marshal_cmd_WaitSemaphoreEXT 406696c5ddc4Srjs{ 406796c5ddc4Srjs struct marshal_cmd_base cmd_base; 406896c5ddc4Srjs GLuint semaphore; 406996c5ddc4Srjs GLuint numBufferBarriers; 407096c5ddc4Srjs GLuint numTextureBarriers; 407196c5ddc4Srjs /* Next safe_mul(numBufferBarriers, 1 * sizeof(GLuint)) bytes are GLuint buffers[numBufferBarriers] */ 407296c5ddc4Srjs /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLuint)) bytes are GLuint textures[numTextureBarriers] */ 407396c5ddc4Srjs /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLenum)) bytes are GLenum srcLayouts[numTextureBarriers] */ 407496c5ddc4Srjs}; 407596c5ddc4Srjsuint32_t 407696c5ddc4Srjs_mesa_unmarshal_WaitSemaphoreEXT(struct gl_context *ctx, const struct marshal_cmd_WaitSemaphoreEXT *cmd, const uint64_t *last) 407796c5ddc4Srjs{ 407896c5ddc4Srjs GLuint semaphore = cmd->semaphore; 407996c5ddc4Srjs GLuint numBufferBarriers = cmd->numBufferBarriers; 408096c5ddc4Srjs GLuint numTextureBarriers = cmd->numTextureBarriers; 408196c5ddc4Srjs GLuint * buffers; 408296c5ddc4Srjs GLuint * textures; 408396c5ddc4Srjs GLenum * srcLayouts; 408496c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 408596c5ddc4Srjs buffers = (GLuint *) variable_data; 408696c5ddc4Srjs variable_data += numBufferBarriers * 1 * sizeof(GLuint); 408796c5ddc4Srjs textures = (GLuint *) variable_data; 408896c5ddc4Srjs variable_data += numTextureBarriers * 1 * sizeof(GLuint); 408996c5ddc4Srjs srcLayouts = (GLenum *) variable_data; 409096c5ddc4Srjs CALL_WaitSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts)); 409196c5ddc4Srjs return cmd->cmd_base.cmd_size; 409296c5ddc4Srjs} 409396c5ddc4Srjsvoid GLAPIENTRY 409496c5ddc4Srjs_mesa_marshal_WaitSemaphoreEXT(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * srcLayouts) 409596c5ddc4Srjs{ 409696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 409796c5ddc4Srjs int buffers_size = safe_mul(numBufferBarriers, 1 * sizeof(GLuint)); 409896c5ddc4Srjs int textures_size = safe_mul(numTextureBarriers, 1 * sizeof(GLuint)); 409996c5ddc4Srjs int srcLayouts_size = safe_mul(numTextureBarriers, 1 * sizeof(GLenum)); 410096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_WaitSemaphoreEXT) + buffers_size + textures_size + srcLayouts_size; 410196c5ddc4Srjs struct marshal_cmd_WaitSemaphoreEXT *cmd; 410296c5ddc4Srjs if (unlikely(buffers_size < 0 || (buffers_size > 0 && !buffers) || textures_size < 0 || (textures_size > 0 && !textures) || srcLayouts_size < 0 || (srcLayouts_size > 0 && !srcLayouts) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 410396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "WaitSemaphoreEXT"); 410496c5ddc4Srjs CALL_WaitSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts)); 410596c5ddc4Srjs return; 410696c5ddc4Srjs } 410796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_WaitSemaphoreEXT, cmd_size); 410896c5ddc4Srjs cmd->semaphore = semaphore; 410996c5ddc4Srjs cmd->numBufferBarriers = numBufferBarriers; 411096c5ddc4Srjs cmd->numTextureBarriers = numTextureBarriers; 411196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 411296c5ddc4Srjs memcpy(variable_data, buffers, buffers_size); 411396c5ddc4Srjs variable_data += buffers_size; 411496c5ddc4Srjs memcpy(variable_data, textures, textures_size); 411596c5ddc4Srjs variable_data += textures_size; 411696c5ddc4Srjs memcpy(variable_data, srcLayouts, srcLayouts_size); 411796c5ddc4Srjs} 411896c5ddc4Srjs 411996c5ddc4Srjs 412096c5ddc4Srjs/* SignalSemaphoreEXT: marshalled asynchronously */ 412196c5ddc4Srjsstruct marshal_cmd_SignalSemaphoreEXT 412296c5ddc4Srjs{ 412396c5ddc4Srjs struct marshal_cmd_base cmd_base; 412496c5ddc4Srjs GLuint semaphore; 412596c5ddc4Srjs GLuint numBufferBarriers; 412696c5ddc4Srjs GLuint numTextureBarriers; 412796c5ddc4Srjs /* Next safe_mul(numBufferBarriers, 1 * sizeof(GLuint)) bytes are GLuint buffers[numBufferBarriers] */ 412896c5ddc4Srjs /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLuint)) bytes are GLuint textures[numTextureBarriers] */ 412996c5ddc4Srjs /* Next safe_mul(numTextureBarriers, 1 * sizeof(GLenum)) bytes are GLenum dstLayouts[numTextureBarriers] */ 413096c5ddc4Srjs}; 413196c5ddc4Srjsuint32_t 413296c5ddc4Srjs_mesa_unmarshal_SignalSemaphoreEXT(struct gl_context *ctx, const struct marshal_cmd_SignalSemaphoreEXT *cmd, const uint64_t *last) 413396c5ddc4Srjs{ 413496c5ddc4Srjs GLuint semaphore = cmd->semaphore; 413596c5ddc4Srjs GLuint numBufferBarriers = cmd->numBufferBarriers; 413696c5ddc4Srjs GLuint numTextureBarriers = cmd->numTextureBarriers; 413796c5ddc4Srjs GLuint * buffers; 413896c5ddc4Srjs GLuint * textures; 413996c5ddc4Srjs GLenum * dstLayouts; 414096c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 414196c5ddc4Srjs buffers = (GLuint *) variable_data; 414296c5ddc4Srjs variable_data += numBufferBarriers * 1 * sizeof(GLuint); 414396c5ddc4Srjs textures = (GLuint *) variable_data; 414496c5ddc4Srjs variable_data += numTextureBarriers * 1 * sizeof(GLuint); 414596c5ddc4Srjs dstLayouts = (GLenum *) variable_data; 414696c5ddc4Srjs CALL_SignalSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts)); 414796c5ddc4Srjs return cmd->cmd_base.cmd_size; 414896c5ddc4Srjs} 414996c5ddc4Srjsvoid GLAPIENTRY 415096c5ddc4Srjs_mesa_marshal_SignalSemaphoreEXT(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * dstLayouts) 415196c5ddc4Srjs{ 415296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 415396c5ddc4Srjs int buffers_size = safe_mul(numBufferBarriers, 1 * sizeof(GLuint)); 415496c5ddc4Srjs int textures_size = safe_mul(numTextureBarriers, 1 * sizeof(GLuint)); 415596c5ddc4Srjs int dstLayouts_size = safe_mul(numTextureBarriers, 1 * sizeof(GLenum)); 415696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_SignalSemaphoreEXT) + buffers_size + textures_size + dstLayouts_size; 415796c5ddc4Srjs struct marshal_cmd_SignalSemaphoreEXT *cmd; 415896c5ddc4Srjs if (unlikely(buffers_size < 0 || (buffers_size > 0 && !buffers) || textures_size < 0 || (textures_size > 0 && !textures) || dstLayouts_size < 0 || (dstLayouts_size > 0 && !dstLayouts) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 415996c5ddc4Srjs _mesa_glthread_finish_before(ctx, "SignalSemaphoreEXT"); 416096c5ddc4Srjs CALL_SignalSemaphoreEXT(ctx->CurrentServerDispatch, (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts)); 416196c5ddc4Srjs return; 416296c5ddc4Srjs } 416396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SignalSemaphoreEXT, cmd_size); 416496c5ddc4Srjs cmd->semaphore = semaphore; 416596c5ddc4Srjs cmd->numBufferBarriers = numBufferBarriers; 416696c5ddc4Srjs cmd->numTextureBarriers = numTextureBarriers; 416796c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 416896c5ddc4Srjs memcpy(variable_data, buffers, buffers_size); 416996c5ddc4Srjs variable_data += buffers_size; 417096c5ddc4Srjs memcpy(variable_data, textures, textures_size); 417196c5ddc4Srjs variable_data += textures_size; 417296c5ddc4Srjs memcpy(variable_data, dstLayouts, dstLayouts_size); 417396c5ddc4Srjs} 417496c5ddc4Srjs 417596c5ddc4Srjs 417696c5ddc4Srjs/* ImportMemoryFdEXT: marshalled asynchronously */ 417796c5ddc4Srjsstruct marshal_cmd_ImportMemoryFdEXT 417896c5ddc4Srjs{ 417996c5ddc4Srjs struct marshal_cmd_base cmd_base; 418096c5ddc4Srjs GLuint memory; 418196c5ddc4Srjs GLenum handleType; 418296c5ddc4Srjs GLint fd; 418396c5ddc4Srjs GLuint64 size; 418496c5ddc4Srjs}; 418596c5ddc4Srjsuint32_t 418696c5ddc4Srjs_mesa_unmarshal_ImportMemoryFdEXT(struct gl_context *ctx, const struct marshal_cmd_ImportMemoryFdEXT *cmd, const uint64_t *last) 418796c5ddc4Srjs{ 418896c5ddc4Srjs GLuint memory = cmd->memory; 418996c5ddc4Srjs GLuint64 size = cmd->size; 419096c5ddc4Srjs GLenum handleType = cmd->handleType; 419196c5ddc4Srjs GLint fd = cmd->fd; 419296c5ddc4Srjs CALL_ImportMemoryFdEXT(ctx->CurrentServerDispatch, (memory, size, handleType, fd)); 419396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ImportMemoryFdEXT), 8) / 8); 419496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 419596c5ddc4Srjs return cmd_size; 419696c5ddc4Srjs} 419796c5ddc4Srjsvoid GLAPIENTRY 419896c5ddc4Srjs_mesa_marshal_ImportMemoryFdEXT(GLuint memory, GLuint64 size, GLenum handleType, GLint fd) 419996c5ddc4Srjs{ 420096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 420196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ImportMemoryFdEXT); 420296c5ddc4Srjs struct marshal_cmd_ImportMemoryFdEXT *cmd; 420396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ImportMemoryFdEXT, cmd_size); 420496c5ddc4Srjs cmd->memory = memory; 420596c5ddc4Srjs cmd->size = size; 420696c5ddc4Srjs cmd->handleType = handleType; 420796c5ddc4Srjs cmd->fd = fd; 420896c5ddc4Srjs} 420996c5ddc4Srjs 421096c5ddc4Srjs 421196c5ddc4Srjs/* ImportSemaphoreFdEXT: marshalled asynchronously */ 421296c5ddc4Srjsstruct marshal_cmd_ImportSemaphoreFdEXT 421396c5ddc4Srjs{ 421496c5ddc4Srjs struct marshal_cmd_base cmd_base; 421596c5ddc4Srjs GLuint semaphore; 421696c5ddc4Srjs GLenum handleType; 421796c5ddc4Srjs GLint fd; 421896c5ddc4Srjs}; 421996c5ddc4Srjsuint32_t 422096c5ddc4Srjs_mesa_unmarshal_ImportSemaphoreFdEXT(struct gl_context *ctx, const struct marshal_cmd_ImportSemaphoreFdEXT *cmd, const uint64_t *last) 422196c5ddc4Srjs{ 422296c5ddc4Srjs GLuint semaphore = cmd->semaphore; 422396c5ddc4Srjs GLenum handleType = cmd->handleType; 422496c5ddc4Srjs GLint fd = cmd->fd; 422596c5ddc4Srjs CALL_ImportSemaphoreFdEXT(ctx->CurrentServerDispatch, (semaphore, handleType, fd)); 422696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ImportSemaphoreFdEXT), 8) / 8); 422796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 422896c5ddc4Srjs return cmd_size; 422996c5ddc4Srjs} 423096c5ddc4Srjsvoid GLAPIENTRY 423196c5ddc4Srjs_mesa_marshal_ImportSemaphoreFdEXT(GLuint semaphore, GLenum handleType, GLint fd) 423296c5ddc4Srjs{ 423396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 423496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ImportSemaphoreFdEXT); 423596c5ddc4Srjs struct marshal_cmd_ImportSemaphoreFdEXT *cmd; 423696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ImportSemaphoreFdEXT, cmd_size); 423796c5ddc4Srjs cmd->semaphore = semaphore; 423896c5ddc4Srjs cmd->handleType = handleType; 423996c5ddc4Srjs cmd->fd = fd; 424096c5ddc4Srjs} 424196c5ddc4Srjs 424296c5ddc4Srjs 424396c5ddc4Srjs/* ViewportSwizzleNV: marshalled asynchronously */ 424496c5ddc4Srjsstruct marshal_cmd_ViewportSwizzleNV 424596c5ddc4Srjs{ 424696c5ddc4Srjs struct marshal_cmd_base cmd_base; 424796c5ddc4Srjs GLuint index; 424896c5ddc4Srjs GLenum swizzlex; 424996c5ddc4Srjs GLenum swizzley; 425096c5ddc4Srjs GLenum swizzlez; 425196c5ddc4Srjs GLenum swizzlew; 425296c5ddc4Srjs}; 425396c5ddc4Srjsuint32_t 425496c5ddc4Srjs_mesa_unmarshal_ViewportSwizzleNV(struct gl_context *ctx, const struct marshal_cmd_ViewportSwizzleNV *cmd, const uint64_t *last) 425596c5ddc4Srjs{ 425696c5ddc4Srjs GLuint index = cmd->index; 425796c5ddc4Srjs GLenum swizzlex = cmd->swizzlex; 425896c5ddc4Srjs GLenum swizzley = cmd->swizzley; 425996c5ddc4Srjs GLenum swizzlez = cmd->swizzlez; 426096c5ddc4Srjs GLenum swizzlew = cmd->swizzlew; 426196c5ddc4Srjs CALL_ViewportSwizzleNV(ctx->CurrentServerDispatch, (index, swizzlex, swizzley, swizzlez, swizzlew)); 426296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ViewportSwizzleNV), 8) / 8); 426396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 426496c5ddc4Srjs return cmd_size; 426596c5ddc4Srjs} 426696c5ddc4Srjsvoid GLAPIENTRY 426796c5ddc4Srjs_mesa_marshal_ViewportSwizzleNV(GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew) 426896c5ddc4Srjs{ 426996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 427096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ViewportSwizzleNV); 427196c5ddc4Srjs struct marshal_cmd_ViewportSwizzleNV *cmd; 427296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ViewportSwizzleNV, cmd_size); 427396c5ddc4Srjs cmd->index = index; 427496c5ddc4Srjs cmd->swizzlex = swizzlex; 427596c5ddc4Srjs cmd->swizzley = swizzley; 427696c5ddc4Srjs cmd->swizzlez = swizzlez; 427796c5ddc4Srjs cmd->swizzlew = swizzlew; 427896c5ddc4Srjs} 427996c5ddc4Srjs 428096c5ddc4Srjs 428196c5ddc4Srjs/* Vertex2hNV: marshalled asynchronously */ 428296c5ddc4Srjsstruct marshal_cmd_Vertex2hNV 428396c5ddc4Srjs{ 428496c5ddc4Srjs struct marshal_cmd_base cmd_base; 428596c5ddc4Srjs GLhalfNV x; 428696c5ddc4Srjs GLhalfNV y; 428796c5ddc4Srjs}; 428896c5ddc4Srjsuint32_t 428996c5ddc4Srjs_mesa_unmarshal_Vertex2hNV(struct gl_context *ctx, const struct marshal_cmd_Vertex2hNV *cmd, const uint64_t *last) 429096c5ddc4Srjs{ 429196c5ddc4Srjs GLhalfNV x = cmd->x; 429296c5ddc4Srjs GLhalfNV y = cmd->y; 429396c5ddc4Srjs CALL_Vertex2hNV(ctx->CurrentServerDispatch, (x, y)); 429496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex2hNV), 8) / 8); 429596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 429696c5ddc4Srjs return cmd_size; 429796c5ddc4Srjs} 429896c5ddc4Srjsvoid GLAPIENTRY 429996c5ddc4Srjs_mesa_marshal_Vertex2hNV(GLhalfNV x, GLhalfNV y) 430096c5ddc4Srjs{ 430196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 430296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Vertex2hNV); 430396c5ddc4Srjs struct marshal_cmd_Vertex2hNV *cmd; 430496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex2hNV, cmd_size); 430596c5ddc4Srjs cmd->x = x; 430696c5ddc4Srjs cmd->y = y; 430796c5ddc4Srjs} 430896c5ddc4Srjs 430996c5ddc4Srjs 431096c5ddc4Srjs/* Vertex2hvNV: marshalled asynchronously */ 431196c5ddc4Srjsstruct marshal_cmd_Vertex2hvNV 431296c5ddc4Srjs{ 431396c5ddc4Srjs struct marshal_cmd_base cmd_base; 431496c5ddc4Srjs GLhalfNV v[2]; 431596c5ddc4Srjs}; 431696c5ddc4Srjsuint32_t 431796c5ddc4Srjs_mesa_unmarshal_Vertex2hvNV(struct gl_context *ctx, const struct marshal_cmd_Vertex2hvNV *cmd, const uint64_t *last) 431896c5ddc4Srjs{ 431996c5ddc4Srjs const GLhalfNV * v = cmd->v; 432096c5ddc4Srjs CALL_Vertex2hvNV(ctx->CurrentServerDispatch, (v)); 432196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex2hvNV), 8) / 8); 432296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 432396c5ddc4Srjs return cmd_size; 432496c5ddc4Srjs} 432596c5ddc4Srjsvoid GLAPIENTRY 432696c5ddc4Srjs_mesa_marshal_Vertex2hvNV(const GLhalfNV * v) 432796c5ddc4Srjs{ 432896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 432996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Vertex2hvNV); 433096c5ddc4Srjs struct marshal_cmd_Vertex2hvNV *cmd; 433196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex2hvNV, cmd_size); 433296c5ddc4Srjs memcpy(cmd->v, v, 2 * sizeof(GLhalfNV)); 433396c5ddc4Srjs} 433496c5ddc4Srjs 433596c5ddc4Srjs 433696c5ddc4Srjs/* Vertex3hNV: marshalled asynchronously */ 433796c5ddc4Srjsstruct marshal_cmd_Vertex3hNV 433896c5ddc4Srjs{ 433996c5ddc4Srjs struct marshal_cmd_base cmd_base; 434096c5ddc4Srjs GLhalfNV x; 434196c5ddc4Srjs GLhalfNV y; 434296c5ddc4Srjs GLhalfNV z; 434396c5ddc4Srjs}; 434496c5ddc4Srjsuint32_t 434596c5ddc4Srjs_mesa_unmarshal_Vertex3hNV(struct gl_context *ctx, const struct marshal_cmd_Vertex3hNV *cmd, const uint64_t *last) 434696c5ddc4Srjs{ 434796c5ddc4Srjs GLhalfNV x = cmd->x; 434896c5ddc4Srjs GLhalfNV y = cmd->y; 434996c5ddc4Srjs GLhalfNV z = cmd->z; 435096c5ddc4Srjs CALL_Vertex3hNV(ctx->CurrentServerDispatch, (x, y, z)); 435196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex3hNV), 8) / 8); 435296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 435396c5ddc4Srjs return cmd_size; 435496c5ddc4Srjs} 435596c5ddc4Srjsvoid GLAPIENTRY 435696c5ddc4Srjs_mesa_marshal_Vertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z) 435796c5ddc4Srjs{ 435896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 435996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Vertex3hNV); 436096c5ddc4Srjs struct marshal_cmd_Vertex3hNV *cmd; 436196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex3hNV, cmd_size); 436296c5ddc4Srjs cmd->x = x; 436396c5ddc4Srjs cmd->y = y; 436496c5ddc4Srjs cmd->z = z; 436596c5ddc4Srjs} 436696c5ddc4Srjs 436796c5ddc4Srjs 436896c5ddc4Srjs/* Vertex3hvNV: marshalled asynchronously */ 436996c5ddc4Srjsstruct marshal_cmd_Vertex3hvNV 437096c5ddc4Srjs{ 437196c5ddc4Srjs struct marshal_cmd_base cmd_base; 437296c5ddc4Srjs GLhalfNV v[3]; 437396c5ddc4Srjs}; 437496c5ddc4Srjsuint32_t 437596c5ddc4Srjs_mesa_unmarshal_Vertex3hvNV(struct gl_context *ctx, const struct marshal_cmd_Vertex3hvNV *cmd, const uint64_t *last) 437696c5ddc4Srjs{ 437796c5ddc4Srjs const GLhalfNV * v = cmd->v; 437896c5ddc4Srjs CALL_Vertex3hvNV(ctx->CurrentServerDispatch, (v)); 437996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex3hvNV), 8) / 8); 438096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 438196c5ddc4Srjs return cmd_size; 438296c5ddc4Srjs} 438396c5ddc4Srjsvoid GLAPIENTRY 438496c5ddc4Srjs_mesa_marshal_Vertex3hvNV(const GLhalfNV * v) 438596c5ddc4Srjs{ 438696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 438796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Vertex3hvNV); 438896c5ddc4Srjs struct marshal_cmd_Vertex3hvNV *cmd; 438996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex3hvNV, cmd_size); 439096c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLhalfNV)); 439196c5ddc4Srjs} 439296c5ddc4Srjs 439396c5ddc4Srjs 439496c5ddc4Srjs/* Vertex4hNV: marshalled asynchronously */ 439596c5ddc4Srjsstruct marshal_cmd_Vertex4hNV 439696c5ddc4Srjs{ 439796c5ddc4Srjs struct marshal_cmd_base cmd_base; 439896c5ddc4Srjs GLhalfNV x; 439996c5ddc4Srjs GLhalfNV y; 440096c5ddc4Srjs GLhalfNV z; 440196c5ddc4Srjs GLhalfNV w; 440296c5ddc4Srjs}; 440396c5ddc4Srjsuint32_t 440496c5ddc4Srjs_mesa_unmarshal_Vertex4hNV(struct gl_context *ctx, const struct marshal_cmd_Vertex4hNV *cmd, const uint64_t *last) 440596c5ddc4Srjs{ 440696c5ddc4Srjs GLhalfNV x = cmd->x; 440796c5ddc4Srjs GLhalfNV y = cmd->y; 440896c5ddc4Srjs GLhalfNV z = cmd->z; 440996c5ddc4Srjs GLhalfNV w = cmd->w; 441096c5ddc4Srjs CALL_Vertex4hNV(ctx->CurrentServerDispatch, (x, y, z, w)); 441196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex4hNV), 8) / 8); 441296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 441396c5ddc4Srjs return cmd_size; 441496c5ddc4Srjs} 441596c5ddc4Srjsvoid GLAPIENTRY 441696c5ddc4Srjs_mesa_marshal_Vertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w) 441796c5ddc4Srjs{ 441896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 441996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Vertex4hNV); 442096c5ddc4Srjs struct marshal_cmd_Vertex4hNV *cmd; 442196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex4hNV, cmd_size); 442296c5ddc4Srjs cmd->x = x; 442396c5ddc4Srjs cmd->y = y; 442496c5ddc4Srjs cmd->z = z; 442596c5ddc4Srjs cmd->w = w; 442696c5ddc4Srjs} 442796c5ddc4Srjs 442896c5ddc4Srjs 442996c5ddc4Srjs/* Vertex4hvNV: marshalled asynchronously */ 443096c5ddc4Srjsstruct marshal_cmd_Vertex4hvNV 443196c5ddc4Srjs{ 443296c5ddc4Srjs struct marshal_cmd_base cmd_base; 443396c5ddc4Srjs GLhalfNV v[4]; 443496c5ddc4Srjs}; 443596c5ddc4Srjsuint32_t 443696c5ddc4Srjs_mesa_unmarshal_Vertex4hvNV(struct gl_context *ctx, const struct marshal_cmd_Vertex4hvNV *cmd, const uint64_t *last) 443796c5ddc4Srjs{ 443896c5ddc4Srjs const GLhalfNV * v = cmd->v; 443996c5ddc4Srjs CALL_Vertex4hvNV(ctx->CurrentServerDispatch, (v)); 444096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Vertex4hvNV), 8) / 8); 444196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 444296c5ddc4Srjs return cmd_size; 444396c5ddc4Srjs} 444496c5ddc4Srjsvoid GLAPIENTRY 444596c5ddc4Srjs_mesa_marshal_Vertex4hvNV(const GLhalfNV * v) 444696c5ddc4Srjs{ 444796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 444896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Vertex4hvNV); 444996c5ddc4Srjs struct marshal_cmd_Vertex4hvNV *cmd; 445096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Vertex4hvNV, cmd_size); 445196c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLhalfNV)); 445296c5ddc4Srjs} 445396c5ddc4Srjs 445496c5ddc4Srjs 445596c5ddc4Srjs/* Normal3hNV: marshalled asynchronously */ 445696c5ddc4Srjsstruct marshal_cmd_Normal3hNV 445796c5ddc4Srjs{ 445896c5ddc4Srjs struct marshal_cmd_base cmd_base; 445996c5ddc4Srjs GLhalfNV nx; 446096c5ddc4Srjs GLhalfNV ny; 446196c5ddc4Srjs GLhalfNV nz; 446296c5ddc4Srjs}; 446396c5ddc4Srjsuint32_t 446496c5ddc4Srjs_mesa_unmarshal_Normal3hNV(struct gl_context *ctx, const struct marshal_cmd_Normal3hNV *cmd, const uint64_t *last) 446596c5ddc4Srjs{ 446696c5ddc4Srjs GLhalfNV nx = cmd->nx; 446796c5ddc4Srjs GLhalfNV ny = cmd->ny; 446896c5ddc4Srjs GLhalfNV nz = cmd->nz; 446996c5ddc4Srjs CALL_Normal3hNV(ctx->CurrentServerDispatch, (nx, ny, nz)); 447096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Normal3hNV), 8) / 8); 447196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 447296c5ddc4Srjs return cmd_size; 447396c5ddc4Srjs} 447496c5ddc4Srjsvoid GLAPIENTRY 447596c5ddc4Srjs_mesa_marshal_Normal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz) 447696c5ddc4Srjs{ 447796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 447896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Normal3hNV); 447996c5ddc4Srjs struct marshal_cmd_Normal3hNV *cmd; 448096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Normal3hNV, cmd_size); 448196c5ddc4Srjs cmd->nx = nx; 448296c5ddc4Srjs cmd->ny = ny; 448396c5ddc4Srjs cmd->nz = nz; 448496c5ddc4Srjs} 448596c5ddc4Srjs 448696c5ddc4Srjs 448796c5ddc4Srjs/* Normal3hvNV: marshalled asynchronously */ 448896c5ddc4Srjsstruct marshal_cmd_Normal3hvNV 448996c5ddc4Srjs{ 449096c5ddc4Srjs struct marshal_cmd_base cmd_base; 449196c5ddc4Srjs GLhalfNV v[3]; 449296c5ddc4Srjs}; 449396c5ddc4Srjsuint32_t 449496c5ddc4Srjs_mesa_unmarshal_Normal3hvNV(struct gl_context *ctx, const struct marshal_cmd_Normal3hvNV *cmd, const uint64_t *last) 449596c5ddc4Srjs{ 449696c5ddc4Srjs const GLhalfNV * v = cmd->v; 449796c5ddc4Srjs CALL_Normal3hvNV(ctx->CurrentServerDispatch, (v)); 449896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Normal3hvNV), 8) / 8); 449996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 450096c5ddc4Srjs return cmd_size; 450196c5ddc4Srjs} 450296c5ddc4Srjsvoid GLAPIENTRY 450396c5ddc4Srjs_mesa_marshal_Normal3hvNV(const GLhalfNV * v) 450496c5ddc4Srjs{ 450596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 450696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Normal3hvNV); 450796c5ddc4Srjs struct marshal_cmd_Normal3hvNV *cmd; 450896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Normal3hvNV, cmd_size); 450996c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLhalfNV)); 451096c5ddc4Srjs} 451196c5ddc4Srjs 451296c5ddc4Srjs 451396c5ddc4Srjs/* Color3hNV: marshalled asynchronously */ 451496c5ddc4Srjsstruct marshal_cmd_Color3hNV 451596c5ddc4Srjs{ 451696c5ddc4Srjs struct marshal_cmd_base cmd_base; 451796c5ddc4Srjs GLhalfNV red; 451896c5ddc4Srjs GLhalfNV green; 451996c5ddc4Srjs GLhalfNV blue; 452096c5ddc4Srjs}; 452196c5ddc4Srjsuint32_t 452296c5ddc4Srjs_mesa_unmarshal_Color3hNV(struct gl_context *ctx, const struct marshal_cmd_Color3hNV *cmd, const uint64_t *last) 452396c5ddc4Srjs{ 452496c5ddc4Srjs GLhalfNV red = cmd->red; 452596c5ddc4Srjs GLhalfNV green = cmd->green; 452696c5ddc4Srjs GLhalfNV blue = cmd->blue; 452796c5ddc4Srjs CALL_Color3hNV(ctx->CurrentServerDispatch, (red, green, blue)); 452896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color3hNV), 8) / 8); 452996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 453096c5ddc4Srjs return cmd_size; 453196c5ddc4Srjs} 453296c5ddc4Srjsvoid GLAPIENTRY 453396c5ddc4Srjs_mesa_marshal_Color3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue) 453496c5ddc4Srjs{ 453596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 453696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Color3hNV); 453796c5ddc4Srjs struct marshal_cmd_Color3hNV *cmd; 453896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color3hNV, cmd_size); 453996c5ddc4Srjs cmd->red = red; 454096c5ddc4Srjs cmd->green = green; 454196c5ddc4Srjs cmd->blue = blue; 454296c5ddc4Srjs} 454396c5ddc4Srjs 454496c5ddc4Srjs 454596c5ddc4Srjs/* Color3hvNV: marshalled asynchronously */ 454696c5ddc4Srjsstruct marshal_cmd_Color3hvNV 454796c5ddc4Srjs{ 454896c5ddc4Srjs struct marshal_cmd_base cmd_base; 454996c5ddc4Srjs GLhalfNV v[3]; 455096c5ddc4Srjs}; 455196c5ddc4Srjsuint32_t 455296c5ddc4Srjs_mesa_unmarshal_Color3hvNV(struct gl_context *ctx, const struct marshal_cmd_Color3hvNV *cmd, const uint64_t *last) 455396c5ddc4Srjs{ 455496c5ddc4Srjs const GLhalfNV * v = cmd->v; 455596c5ddc4Srjs CALL_Color3hvNV(ctx->CurrentServerDispatch, (v)); 455696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color3hvNV), 8) / 8); 455796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 455896c5ddc4Srjs return cmd_size; 455996c5ddc4Srjs} 456096c5ddc4Srjsvoid GLAPIENTRY 456196c5ddc4Srjs_mesa_marshal_Color3hvNV(const GLhalfNV * v) 456296c5ddc4Srjs{ 456396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 456496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Color3hvNV); 456596c5ddc4Srjs struct marshal_cmd_Color3hvNV *cmd; 456696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color3hvNV, cmd_size); 456796c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLhalfNV)); 456896c5ddc4Srjs} 456996c5ddc4Srjs 457096c5ddc4Srjs 457196c5ddc4Srjs/* Color4hNV: marshalled asynchronously */ 457296c5ddc4Srjsstruct marshal_cmd_Color4hNV 457396c5ddc4Srjs{ 457496c5ddc4Srjs struct marshal_cmd_base cmd_base; 457596c5ddc4Srjs GLhalfNV red; 457696c5ddc4Srjs GLhalfNV green; 457796c5ddc4Srjs GLhalfNV blue; 457896c5ddc4Srjs GLhalfNV alpha; 457996c5ddc4Srjs}; 458096c5ddc4Srjsuint32_t 458196c5ddc4Srjs_mesa_unmarshal_Color4hNV(struct gl_context *ctx, const struct marshal_cmd_Color4hNV *cmd, const uint64_t *last) 458296c5ddc4Srjs{ 458396c5ddc4Srjs GLhalfNV red = cmd->red; 458496c5ddc4Srjs GLhalfNV green = cmd->green; 458596c5ddc4Srjs GLhalfNV blue = cmd->blue; 458696c5ddc4Srjs GLhalfNV alpha = cmd->alpha; 458796c5ddc4Srjs CALL_Color4hNV(ctx->CurrentServerDispatch, (red, green, blue, alpha)); 458896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color4hNV), 8) / 8); 458996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 459096c5ddc4Srjs return cmd_size; 459196c5ddc4Srjs} 459296c5ddc4Srjsvoid GLAPIENTRY 459396c5ddc4Srjs_mesa_marshal_Color4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha) 459496c5ddc4Srjs{ 459596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 459696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Color4hNV); 459796c5ddc4Srjs struct marshal_cmd_Color4hNV *cmd; 459896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color4hNV, cmd_size); 459996c5ddc4Srjs cmd->red = red; 460096c5ddc4Srjs cmd->green = green; 460196c5ddc4Srjs cmd->blue = blue; 460296c5ddc4Srjs cmd->alpha = alpha; 460396c5ddc4Srjs} 460496c5ddc4Srjs 460596c5ddc4Srjs 460696c5ddc4Srjs/* Color4hvNV: marshalled asynchronously */ 460796c5ddc4Srjsstruct marshal_cmd_Color4hvNV 460896c5ddc4Srjs{ 460996c5ddc4Srjs struct marshal_cmd_base cmd_base; 461096c5ddc4Srjs GLhalfNV v[4]; 461196c5ddc4Srjs}; 461296c5ddc4Srjsuint32_t 461396c5ddc4Srjs_mesa_unmarshal_Color4hvNV(struct gl_context *ctx, const struct marshal_cmd_Color4hvNV *cmd, const uint64_t *last) 461496c5ddc4Srjs{ 461596c5ddc4Srjs const GLhalfNV * v = cmd->v; 461696c5ddc4Srjs CALL_Color4hvNV(ctx->CurrentServerDispatch, (v)); 461796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color4hvNV), 8) / 8); 461896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 461996c5ddc4Srjs return cmd_size; 462096c5ddc4Srjs} 462196c5ddc4Srjsvoid GLAPIENTRY 462296c5ddc4Srjs_mesa_marshal_Color4hvNV(const GLhalfNV * v) 462396c5ddc4Srjs{ 462496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 462596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Color4hvNV); 462696c5ddc4Srjs struct marshal_cmd_Color4hvNV *cmd; 462796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color4hvNV, cmd_size); 462896c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLhalfNV)); 462996c5ddc4Srjs} 463096c5ddc4Srjs 463196c5ddc4Srjs 463296c5ddc4Srjs/* TexCoord1hNV: marshalled asynchronously */ 463396c5ddc4Srjsstruct marshal_cmd_TexCoord1hNV 463496c5ddc4Srjs{ 463596c5ddc4Srjs struct marshal_cmd_base cmd_base; 463696c5ddc4Srjs GLhalfNV s; 463796c5ddc4Srjs}; 463896c5ddc4Srjsuint32_t 463996c5ddc4Srjs_mesa_unmarshal_TexCoord1hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord1hNV *cmd, const uint64_t *last) 464096c5ddc4Srjs{ 464196c5ddc4Srjs GLhalfNV s = cmd->s; 464296c5ddc4Srjs CALL_TexCoord1hNV(ctx->CurrentServerDispatch, (s)); 464396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord1hNV), 8) / 8); 464496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 464596c5ddc4Srjs return cmd_size; 464696c5ddc4Srjs} 464796c5ddc4Srjsvoid GLAPIENTRY 464896c5ddc4Srjs_mesa_marshal_TexCoord1hNV(GLhalfNV s) 464996c5ddc4Srjs{ 465096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 465196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord1hNV); 465296c5ddc4Srjs struct marshal_cmd_TexCoord1hNV *cmd; 465396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord1hNV, cmd_size); 465496c5ddc4Srjs cmd->s = s; 465596c5ddc4Srjs} 465696c5ddc4Srjs 465796c5ddc4Srjs 465896c5ddc4Srjs/* TexCoord1hvNV: marshalled asynchronously */ 465996c5ddc4Srjsstruct marshal_cmd_TexCoord1hvNV 466096c5ddc4Srjs{ 466196c5ddc4Srjs struct marshal_cmd_base cmd_base; 466296c5ddc4Srjs GLhalfNV v[1]; 466396c5ddc4Srjs}; 466496c5ddc4Srjsuint32_t 466596c5ddc4Srjs_mesa_unmarshal_TexCoord1hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord1hvNV *cmd, const uint64_t *last) 466696c5ddc4Srjs{ 466796c5ddc4Srjs const GLhalfNV * v = cmd->v; 466896c5ddc4Srjs CALL_TexCoord1hvNV(ctx->CurrentServerDispatch, (v)); 466996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord1hvNV), 8) / 8); 467096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 467196c5ddc4Srjs return cmd_size; 467296c5ddc4Srjs} 467396c5ddc4Srjsvoid GLAPIENTRY 467496c5ddc4Srjs_mesa_marshal_TexCoord1hvNV(const GLhalfNV * v) 467596c5ddc4Srjs{ 467696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 467796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord1hvNV); 467896c5ddc4Srjs struct marshal_cmd_TexCoord1hvNV *cmd; 467996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord1hvNV, cmd_size); 468096c5ddc4Srjs memcpy(cmd->v, v, 1 * sizeof(GLhalfNV)); 468196c5ddc4Srjs} 468296c5ddc4Srjs 468396c5ddc4Srjs 468496c5ddc4Srjs/* TexCoord2hNV: marshalled asynchronously */ 468596c5ddc4Srjsstruct marshal_cmd_TexCoord2hNV 468696c5ddc4Srjs{ 468796c5ddc4Srjs struct marshal_cmd_base cmd_base; 468896c5ddc4Srjs GLhalfNV s; 468996c5ddc4Srjs GLhalfNV t; 469096c5ddc4Srjs}; 469196c5ddc4Srjsuint32_t 469296c5ddc4Srjs_mesa_unmarshal_TexCoord2hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord2hNV *cmd, const uint64_t *last) 469396c5ddc4Srjs{ 469496c5ddc4Srjs GLhalfNV s = cmd->s; 469596c5ddc4Srjs GLhalfNV t = cmd->t; 469696c5ddc4Srjs CALL_TexCoord2hNV(ctx->CurrentServerDispatch, (s, t)); 469796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord2hNV), 8) / 8); 469896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 469996c5ddc4Srjs return cmd_size; 470096c5ddc4Srjs} 470196c5ddc4Srjsvoid GLAPIENTRY 470296c5ddc4Srjs_mesa_marshal_TexCoord2hNV(GLhalfNV s, GLhalfNV t) 470396c5ddc4Srjs{ 470496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 470596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord2hNV); 470696c5ddc4Srjs struct marshal_cmd_TexCoord2hNV *cmd; 470796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord2hNV, cmd_size); 470896c5ddc4Srjs cmd->s = s; 470996c5ddc4Srjs cmd->t = t; 471096c5ddc4Srjs} 471196c5ddc4Srjs 471296c5ddc4Srjs 471396c5ddc4Srjs/* TexCoord2hvNV: marshalled asynchronously */ 471496c5ddc4Srjsstruct marshal_cmd_TexCoord2hvNV 471596c5ddc4Srjs{ 471696c5ddc4Srjs struct marshal_cmd_base cmd_base; 471796c5ddc4Srjs GLhalfNV v[2]; 471896c5ddc4Srjs}; 471996c5ddc4Srjsuint32_t 472096c5ddc4Srjs_mesa_unmarshal_TexCoord2hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord2hvNV *cmd, const uint64_t *last) 472196c5ddc4Srjs{ 472296c5ddc4Srjs const GLhalfNV * v = cmd->v; 472396c5ddc4Srjs CALL_TexCoord2hvNV(ctx->CurrentServerDispatch, (v)); 472496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord2hvNV), 8) / 8); 472596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 472696c5ddc4Srjs return cmd_size; 472796c5ddc4Srjs} 472896c5ddc4Srjsvoid GLAPIENTRY 472996c5ddc4Srjs_mesa_marshal_TexCoord2hvNV(const GLhalfNV * v) 473096c5ddc4Srjs{ 473196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 473296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord2hvNV); 473396c5ddc4Srjs struct marshal_cmd_TexCoord2hvNV *cmd; 473496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord2hvNV, cmd_size); 473596c5ddc4Srjs memcpy(cmd->v, v, 2 * sizeof(GLhalfNV)); 473696c5ddc4Srjs} 473796c5ddc4Srjs 473896c5ddc4Srjs 473996c5ddc4Srjs/* TexCoord3hNV: marshalled asynchronously */ 474096c5ddc4Srjsstruct marshal_cmd_TexCoord3hNV 474196c5ddc4Srjs{ 474296c5ddc4Srjs struct marshal_cmd_base cmd_base; 474396c5ddc4Srjs GLhalfNV s; 474496c5ddc4Srjs GLhalfNV t; 474596c5ddc4Srjs GLhalfNV r; 474696c5ddc4Srjs}; 474796c5ddc4Srjsuint32_t 474896c5ddc4Srjs_mesa_unmarshal_TexCoord3hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord3hNV *cmd, const uint64_t *last) 474996c5ddc4Srjs{ 475096c5ddc4Srjs GLhalfNV s = cmd->s; 475196c5ddc4Srjs GLhalfNV t = cmd->t; 475296c5ddc4Srjs GLhalfNV r = cmd->r; 475396c5ddc4Srjs CALL_TexCoord3hNV(ctx->CurrentServerDispatch, (s, t, r)); 475496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord3hNV), 8) / 8); 475596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 475696c5ddc4Srjs return cmd_size; 475796c5ddc4Srjs} 475896c5ddc4Srjsvoid GLAPIENTRY 475996c5ddc4Srjs_mesa_marshal_TexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r) 476096c5ddc4Srjs{ 476196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 476296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord3hNV); 476396c5ddc4Srjs struct marshal_cmd_TexCoord3hNV *cmd; 476496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord3hNV, cmd_size); 476596c5ddc4Srjs cmd->s = s; 476696c5ddc4Srjs cmd->t = t; 476796c5ddc4Srjs cmd->r = r; 476896c5ddc4Srjs} 476996c5ddc4Srjs 477096c5ddc4Srjs 477196c5ddc4Srjs/* TexCoord3hvNV: marshalled asynchronously */ 477296c5ddc4Srjsstruct marshal_cmd_TexCoord3hvNV 477396c5ddc4Srjs{ 477496c5ddc4Srjs struct marshal_cmd_base cmd_base; 477596c5ddc4Srjs GLhalfNV v[3]; 477696c5ddc4Srjs}; 477796c5ddc4Srjsuint32_t 477896c5ddc4Srjs_mesa_unmarshal_TexCoord3hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord3hvNV *cmd, const uint64_t *last) 477996c5ddc4Srjs{ 478096c5ddc4Srjs const GLhalfNV * v = cmd->v; 478196c5ddc4Srjs CALL_TexCoord3hvNV(ctx->CurrentServerDispatch, (v)); 478296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord3hvNV), 8) / 8); 478396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 478496c5ddc4Srjs return cmd_size; 478596c5ddc4Srjs} 478696c5ddc4Srjsvoid GLAPIENTRY 478796c5ddc4Srjs_mesa_marshal_TexCoord3hvNV(const GLhalfNV * v) 478896c5ddc4Srjs{ 478996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 479096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord3hvNV); 479196c5ddc4Srjs struct marshal_cmd_TexCoord3hvNV *cmd; 479296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord3hvNV, cmd_size); 479396c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLhalfNV)); 479496c5ddc4Srjs} 479596c5ddc4Srjs 479696c5ddc4Srjs 479796c5ddc4Srjs/* TexCoord4hNV: marshalled asynchronously */ 479896c5ddc4Srjsstruct marshal_cmd_TexCoord4hNV 479996c5ddc4Srjs{ 480096c5ddc4Srjs struct marshal_cmd_base cmd_base; 480196c5ddc4Srjs GLhalfNV s; 480296c5ddc4Srjs GLhalfNV t; 480396c5ddc4Srjs GLhalfNV r; 480496c5ddc4Srjs GLhalfNV q; 480596c5ddc4Srjs}; 480696c5ddc4Srjsuint32_t 480796c5ddc4Srjs_mesa_unmarshal_TexCoord4hNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord4hNV *cmd, const uint64_t *last) 480896c5ddc4Srjs{ 480996c5ddc4Srjs GLhalfNV s = cmd->s; 481096c5ddc4Srjs GLhalfNV t = cmd->t; 481196c5ddc4Srjs GLhalfNV r = cmd->r; 481296c5ddc4Srjs GLhalfNV q = cmd->q; 481396c5ddc4Srjs CALL_TexCoord4hNV(ctx->CurrentServerDispatch, (s, t, r, q)); 481496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord4hNV), 8) / 8); 481596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 481696c5ddc4Srjs return cmd_size; 481796c5ddc4Srjs} 481896c5ddc4Srjsvoid GLAPIENTRY 481996c5ddc4Srjs_mesa_marshal_TexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q) 482096c5ddc4Srjs{ 482196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 482296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord4hNV); 482396c5ddc4Srjs struct marshal_cmd_TexCoord4hNV *cmd; 482496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord4hNV, cmd_size); 482596c5ddc4Srjs cmd->s = s; 482696c5ddc4Srjs cmd->t = t; 482796c5ddc4Srjs cmd->r = r; 482896c5ddc4Srjs cmd->q = q; 482996c5ddc4Srjs} 483096c5ddc4Srjs 483196c5ddc4Srjs 483296c5ddc4Srjs/* TexCoord4hvNV: marshalled asynchronously */ 483396c5ddc4Srjsstruct marshal_cmd_TexCoord4hvNV 483496c5ddc4Srjs{ 483596c5ddc4Srjs struct marshal_cmd_base cmd_base; 483696c5ddc4Srjs GLhalfNV v[4]; 483796c5ddc4Srjs}; 483896c5ddc4Srjsuint32_t 483996c5ddc4Srjs_mesa_unmarshal_TexCoord4hvNV(struct gl_context *ctx, const struct marshal_cmd_TexCoord4hvNV *cmd, const uint64_t *last) 484096c5ddc4Srjs{ 484196c5ddc4Srjs const GLhalfNV * v = cmd->v; 484296c5ddc4Srjs CALL_TexCoord4hvNV(ctx->CurrentServerDispatch, (v)); 484396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexCoord4hvNV), 8) / 8); 484496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 484596c5ddc4Srjs return cmd_size; 484696c5ddc4Srjs} 484796c5ddc4Srjsvoid GLAPIENTRY 484896c5ddc4Srjs_mesa_marshal_TexCoord4hvNV(const GLhalfNV * v) 484996c5ddc4Srjs{ 485096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 485196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexCoord4hvNV); 485296c5ddc4Srjs struct marshal_cmd_TexCoord4hvNV *cmd; 485396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexCoord4hvNV, cmd_size); 485496c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLhalfNV)); 485596c5ddc4Srjs} 485696c5ddc4Srjs 485796c5ddc4Srjs 485896c5ddc4Srjs/* MultiTexCoord1hNV: marshalled asynchronously */ 485996c5ddc4Srjsstruct marshal_cmd_MultiTexCoord1hNV 486096c5ddc4Srjs{ 486196c5ddc4Srjs struct marshal_cmd_base cmd_base; 486296c5ddc4Srjs GLhalfNV s; 486396c5ddc4Srjs GLenum target; 486496c5ddc4Srjs}; 486596c5ddc4Srjsuint32_t 486696c5ddc4Srjs_mesa_unmarshal_MultiTexCoord1hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord1hNV *cmd, const uint64_t *last) 486796c5ddc4Srjs{ 486896c5ddc4Srjs GLenum target = cmd->target; 486996c5ddc4Srjs GLhalfNV s = cmd->s; 487096c5ddc4Srjs CALL_MultiTexCoord1hNV(ctx->CurrentServerDispatch, (target, s)); 487196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord1hNV), 8) / 8); 487296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 487396c5ddc4Srjs return cmd_size; 487496c5ddc4Srjs} 487596c5ddc4Srjsvoid GLAPIENTRY 487696c5ddc4Srjs_mesa_marshal_MultiTexCoord1hNV(GLenum target, GLhalfNV s) 487796c5ddc4Srjs{ 487896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 487996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord1hNV); 488096c5ddc4Srjs struct marshal_cmd_MultiTexCoord1hNV *cmd; 488196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord1hNV, cmd_size); 488296c5ddc4Srjs cmd->target = target; 488396c5ddc4Srjs cmd->s = s; 488496c5ddc4Srjs} 488596c5ddc4Srjs 488696c5ddc4Srjs 488796c5ddc4Srjs/* MultiTexCoord1hvNV: marshalled asynchronously */ 488896c5ddc4Srjsstruct marshal_cmd_MultiTexCoord1hvNV 488996c5ddc4Srjs{ 489096c5ddc4Srjs struct marshal_cmd_base cmd_base; 489196c5ddc4Srjs GLenum target; 489296c5ddc4Srjs GLhalfNV v[1]; 489396c5ddc4Srjs}; 489496c5ddc4Srjsuint32_t 489596c5ddc4Srjs_mesa_unmarshal_MultiTexCoord1hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord1hvNV *cmd, const uint64_t *last) 489696c5ddc4Srjs{ 489796c5ddc4Srjs GLenum target = cmd->target; 489896c5ddc4Srjs const GLhalfNV * v = cmd->v; 489996c5ddc4Srjs CALL_MultiTexCoord1hvNV(ctx->CurrentServerDispatch, (target, v)); 490096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord1hvNV), 8) / 8); 490196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 490296c5ddc4Srjs return cmd_size; 490396c5ddc4Srjs} 490496c5ddc4Srjsvoid GLAPIENTRY 490596c5ddc4Srjs_mesa_marshal_MultiTexCoord1hvNV(GLenum target, const GLhalfNV * v) 490696c5ddc4Srjs{ 490796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 490896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord1hvNV); 490996c5ddc4Srjs struct marshal_cmd_MultiTexCoord1hvNV *cmd; 491096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord1hvNV, cmd_size); 491196c5ddc4Srjs cmd->target = target; 491296c5ddc4Srjs memcpy(cmd->v, v, 1 * sizeof(GLhalfNV)); 491396c5ddc4Srjs} 491496c5ddc4Srjs 491596c5ddc4Srjs 491696c5ddc4Srjs/* MultiTexCoord2hNV: marshalled asynchronously */ 491796c5ddc4Srjsstruct marshal_cmd_MultiTexCoord2hNV 491896c5ddc4Srjs{ 491996c5ddc4Srjs struct marshal_cmd_base cmd_base; 492096c5ddc4Srjs GLhalfNV s; 492196c5ddc4Srjs GLhalfNV t; 492296c5ddc4Srjs GLenum target; 492396c5ddc4Srjs}; 492496c5ddc4Srjsuint32_t 492596c5ddc4Srjs_mesa_unmarshal_MultiTexCoord2hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord2hNV *cmd, const uint64_t *last) 492696c5ddc4Srjs{ 492796c5ddc4Srjs GLenum target = cmd->target; 492896c5ddc4Srjs GLhalfNV s = cmd->s; 492996c5ddc4Srjs GLhalfNV t = cmd->t; 493096c5ddc4Srjs CALL_MultiTexCoord2hNV(ctx->CurrentServerDispatch, (target, s, t)); 493196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord2hNV), 8) / 8); 493296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 493396c5ddc4Srjs return cmd_size; 493496c5ddc4Srjs} 493596c5ddc4Srjsvoid GLAPIENTRY 493696c5ddc4Srjs_mesa_marshal_MultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t) 493796c5ddc4Srjs{ 493896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 493996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord2hNV); 494096c5ddc4Srjs struct marshal_cmd_MultiTexCoord2hNV *cmd; 494196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord2hNV, cmd_size); 494296c5ddc4Srjs cmd->target = target; 494396c5ddc4Srjs cmd->s = s; 494496c5ddc4Srjs cmd->t = t; 494596c5ddc4Srjs} 494696c5ddc4Srjs 494796c5ddc4Srjs 494896c5ddc4Srjs/* MultiTexCoord2hvNV: marshalled asynchronously */ 494996c5ddc4Srjsstruct marshal_cmd_MultiTexCoord2hvNV 495096c5ddc4Srjs{ 495196c5ddc4Srjs struct marshal_cmd_base cmd_base; 495296c5ddc4Srjs GLenum target; 495396c5ddc4Srjs GLhalfNV v[2]; 495496c5ddc4Srjs}; 495596c5ddc4Srjsuint32_t 495696c5ddc4Srjs_mesa_unmarshal_MultiTexCoord2hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord2hvNV *cmd, const uint64_t *last) 495796c5ddc4Srjs{ 495896c5ddc4Srjs GLenum target = cmd->target; 495996c5ddc4Srjs const GLhalfNV * v = cmd->v; 496096c5ddc4Srjs CALL_MultiTexCoord2hvNV(ctx->CurrentServerDispatch, (target, v)); 496196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord2hvNV), 8) / 8); 496296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 496396c5ddc4Srjs return cmd_size; 496496c5ddc4Srjs} 496596c5ddc4Srjsvoid GLAPIENTRY 496696c5ddc4Srjs_mesa_marshal_MultiTexCoord2hvNV(GLenum target, const GLhalfNV * v) 496796c5ddc4Srjs{ 496896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 496996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord2hvNV); 497096c5ddc4Srjs struct marshal_cmd_MultiTexCoord2hvNV *cmd; 497196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord2hvNV, cmd_size); 497296c5ddc4Srjs cmd->target = target; 497396c5ddc4Srjs memcpy(cmd->v, v, 2 * sizeof(GLhalfNV)); 497496c5ddc4Srjs} 497596c5ddc4Srjs 497696c5ddc4Srjs 497796c5ddc4Srjs/* MultiTexCoord3hNV: marshalled asynchronously */ 497896c5ddc4Srjsstruct marshal_cmd_MultiTexCoord3hNV 497996c5ddc4Srjs{ 498096c5ddc4Srjs struct marshal_cmd_base cmd_base; 498196c5ddc4Srjs GLhalfNV s; 498296c5ddc4Srjs GLhalfNV t; 498396c5ddc4Srjs GLhalfNV r; 498496c5ddc4Srjs GLenum target; 498596c5ddc4Srjs}; 498696c5ddc4Srjsuint32_t 498796c5ddc4Srjs_mesa_unmarshal_MultiTexCoord3hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord3hNV *cmd, const uint64_t *last) 498896c5ddc4Srjs{ 498996c5ddc4Srjs GLenum target = cmd->target; 499096c5ddc4Srjs GLhalfNV s = cmd->s; 499196c5ddc4Srjs GLhalfNV t = cmd->t; 499296c5ddc4Srjs GLhalfNV r = cmd->r; 499396c5ddc4Srjs CALL_MultiTexCoord3hNV(ctx->CurrentServerDispatch, (target, s, t, r)); 499496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord3hNV), 8) / 8); 499596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 499696c5ddc4Srjs return cmd_size; 499796c5ddc4Srjs} 499896c5ddc4Srjsvoid GLAPIENTRY 499996c5ddc4Srjs_mesa_marshal_MultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r) 500096c5ddc4Srjs{ 500196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 500296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord3hNV); 500396c5ddc4Srjs struct marshal_cmd_MultiTexCoord3hNV *cmd; 500496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord3hNV, cmd_size); 500596c5ddc4Srjs cmd->target = target; 500696c5ddc4Srjs cmd->s = s; 500796c5ddc4Srjs cmd->t = t; 500896c5ddc4Srjs cmd->r = r; 500996c5ddc4Srjs} 501096c5ddc4Srjs 501196c5ddc4Srjs 501296c5ddc4Srjs/* MultiTexCoord3hvNV: marshalled asynchronously */ 501396c5ddc4Srjsstruct marshal_cmd_MultiTexCoord3hvNV 501496c5ddc4Srjs{ 501596c5ddc4Srjs struct marshal_cmd_base cmd_base; 501696c5ddc4Srjs GLenum target; 501796c5ddc4Srjs GLhalfNV v[3]; 501896c5ddc4Srjs}; 501996c5ddc4Srjsuint32_t 502096c5ddc4Srjs_mesa_unmarshal_MultiTexCoord3hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord3hvNV *cmd, const uint64_t *last) 502196c5ddc4Srjs{ 502296c5ddc4Srjs GLenum target = cmd->target; 502396c5ddc4Srjs const GLhalfNV * v = cmd->v; 502496c5ddc4Srjs CALL_MultiTexCoord3hvNV(ctx->CurrentServerDispatch, (target, v)); 502596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord3hvNV), 8) / 8); 502696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 502796c5ddc4Srjs return cmd_size; 502896c5ddc4Srjs} 502996c5ddc4Srjsvoid GLAPIENTRY 503096c5ddc4Srjs_mesa_marshal_MultiTexCoord3hvNV(GLenum target, const GLhalfNV * v) 503196c5ddc4Srjs{ 503296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 503396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord3hvNV); 503496c5ddc4Srjs struct marshal_cmd_MultiTexCoord3hvNV *cmd; 503596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord3hvNV, cmd_size); 503696c5ddc4Srjs cmd->target = target; 503796c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLhalfNV)); 503896c5ddc4Srjs} 503996c5ddc4Srjs 504096c5ddc4Srjs 504196c5ddc4Srjs/* MultiTexCoord4hNV: marshalled asynchronously */ 504296c5ddc4Srjsstruct marshal_cmd_MultiTexCoord4hNV 504396c5ddc4Srjs{ 504496c5ddc4Srjs struct marshal_cmd_base cmd_base; 504596c5ddc4Srjs GLhalfNV s; 504696c5ddc4Srjs GLhalfNV t; 504796c5ddc4Srjs GLhalfNV r; 504896c5ddc4Srjs GLhalfNV q; 504996c5ddc4Srjs GLenum target; 505096c5ddc4Srjs}; 505196c5ddc4Srjsuint32_t 505296c5ddc4Srjs_mesa_unmarshal_MultiTexCoord4hNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord4hNV *cmd, const uint64_t *last) 505396c5ddc4Srjs{ 505496c5ddc4Srjs GLenum target = cmd->target; 505596c5ddc4Srjs GLhalfNV s = cmd->s; 505696c5ddc4Srjs GLhalfNV t = cmd->t; 505796c5ddc4Srjs GLhalfNV r = cmd->r; 505896c5ddc4Srjs GLhalfNV q = cmd->q; 505996c5ddc4Srjs CALL_MultiTexCoord4hNV(ctx->CurrentServerDispatch, (target, s, t, r, q)); 506096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord4hNV), 8) / 8); 506196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 506296c5ddc4Srjs return cmd_size; 506396c5ddc4Srjs} 506496c5ddc4Srjsvoid GLAPIENTRY 506596c5ddc4Srjs_mesa_marshal_MultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q) 506696c5ddc4Srjs{ 506796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 506896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord4hNV); 506996c5ddc4Srjs struct marshal_cmd_MultiTexCoord4hNV *cmd; 507096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord4hNV, cmd_size); 507196c5ddc4Srjs cmd->target = target; 507296c5ddc4Srjs cmd->s = s; 507396c5ddc4Srjs cmd->t = t; 507496c5ddc4Srjs cmd->r = r; 507596c5ddc4Srjs cmd->q = q; 507696c5ddc4Srjs} 507796c5ddc4Srjs 507896c5ddc4Srjs 507996c5ddc4Srjs/* MultiTexCoord4hvNV: marshalled asynchronously */ 508096c5ddc4Srjsstruct marshal_cmd_MultiTexCoord4hvNV 508196c5ddc4Srjs{ 508296c5ddc4Srjs struct marshal_cmd_base cmd_base; 508396c5ddc4Srjs GLenum target; 508496c5ddc4Srjs GLhalfNV v[4]; 508596c5ddc4Srjs}; 508696c5ddc4Srjsuint32_t 508796c5ddc4Srjs_mesa_unmarshal_MultiTexCoord4hvNV(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord4hvNV *cmd, const uint64_t *last) 508896c5ddc4Srjs{ 508996c5ddc4Srjs GLenum target = cmd->target; 509096c5ddc4Srjs const GLhalfNV * v = cmd->v; 509196c5ddc4Srjs CALL_MultiTexCoord4hvNV(ctx->CurrentServerDispatch, (target, v)); 509296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord4hvNV), 8) / 8); 509396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 509496c5ddc4Srjs return cmd_size; 509596c5ddc4Srjs} 509696c5ddc4Srjsvoid GLAPIENTRY 509796c5ddc4Srjs_mesa_marshal_MultiTexCoord4hvNV(GLenum target, const GLhalfNV * v) 509896c5ddc4Srjs{ 509996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 510096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord4hvNV); 510196c5ddc4Srjs struct marshal_cmd_MultiTexCoord4hvNV *cmd; 510296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord4hvNV, cmd_size); 510396c5ddc4Srjs cmd->target = target; 510496c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLhalfNV)); 510596c5ddc4Srjs} 510696c5ddc4Srjs 510796c5ddc4Srjs 510896c5ddc4Srjs/* VertexAttrib1hNV: marshalled asynchronously */ 510996c5ddc4Srjsstruct marshal_cmd_VertexAttrib1hNV 511096c5ddc4Srjs{ 511196c5ddc4Srjs struct marshal_cmd_base cmd_base; 511296c5ddc4Srjs GLhalfNV x; 511396c5ddc4Srjs GLuint index; 511496c5ddc4Srjs}; 511596c5ddc4Srjsuint32_t 511696c5ddc4Srjs_mesa_unmarshal_VertexAttrib1hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib1hNV *cmd, const uint64_t *last) 511796c5ddc4Srjs{ 511896c5ddc4Srjs GLuint index = cmd->index; 511996c5ddc4Srjs GLhalfNV x = cmd->x; 512096c5ddc4Srjs CALL_VertexAttrib1hNV(ctx->CurrentServerDispatch, (index, x)); 512196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib1hNV), 8) / 8); 512296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 512396c5ddc4Srjs return cmd_size; 512496c5ddc4Srjs} 512596c5ddc4Srjsvoid GLAPIENTRY 512696c5ddc4Srjs_mesa_marshal_VertexAttrib1hNV(GLuint index, GLhalfNV x) 512796c5ddc4Srjs{ 512896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 512996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib1hNV); 513096c5ddc4Srjs struct marshal_cmd_VertexAttrib1hNV *cmd; 513196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib1hNV, cmd_size); 513296c5ddc4Srjs cmd->index = index; 513396c5ddc4Srjs cmd->x = x; 513496c5ddc4Srjs} 513596c5ddc4Srjs 513696c5ddc4Srjs 513796c5ddc4Srjs/* VertexAttrib1hvNV: marshalled asynchronously */ 513896c5ddc4Srjsstruct marshal_cmd_VertexAttrib1hvNV 513996c5ddc4Srjs{ 514096c5ddc4Srjs struct marshal_cmd_base cmd_base; 514196c5ddc4Srjs GLuint index; 514296c5ddc4Srjs GLhalfNV v[1]; 514396c5ddc4Srjs}; 514496c5ddc4Srjsuint32_t 514596c5ddc4Srjs_mesa_unmarshal_VertexAttrib1hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib1hvNV *cmd, const uint64_t *last) 514696c5ddc4Srjs{ 514796c5ddc4Srjs GLuint index = cmd->index; 514896c5ddc4Srjs const GLhalfNV * v = cmd->v; 514996c5ddc4Srjs CALL_VertexAttrib1hvNV(ctx->CurrentServerDispatch, (index, v)); 515096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib1hvNV), 8) / 8); 515196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 515296c5ddc4Srjs return cmd_size; 515396c5ddc4Srjs} 515496c5ddc4Srjsvoid GLAPIENTRY 515596c5ddc4Srjs_mesa_marshal_VertexAttrib1hvNV(GLuint index, const GLhalfNV * v) 515696c5ddc4Srjs{ 515796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 515896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib1hvNV); 515996c5ddc4Srjs struct marshal_cmd_VertexAttrib1hvNV *cmd; 516096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib1hvNV, cmd_size); 516196c5ddc4Srjs cmd->index = index; 516296c5ddc4Srjs memcpy(cmd->v, v, 1 * sizeof(GLhalfNV)); 516396c5ddc4Srjs} 516496c5ddc4Srjs 516596c5ddc4Srjs 516696c5ddc4Srjs/* VertexAttrib2hNV: marshalled asynchronously */ 516796c5ddc4Srjsstruct marshal_cmd_VertexAttrib2hNV 516896c5ddc4Srjs{ 516996c5ddc4Srjs struct marshal_cmd_base cmd_base; 517096c5ddc4Srjs GLhalfNV x; 517196c5ddc4Srjs GLhalfNV y; 517296c5ddc4Srjs GLuint index; 517396c5ddc4Srjs}; 517496c5ddc4Srjsuint32_t 517596c5ddc4Srjs_mesa_unmarshal_VertexAttrib2hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib2hNV *cmd, const uint64_t *last) 517696c5ddc4Srjs{ 517796c5ddc4Srjs GLuint index = cmd->index; 517896c5ddc4Srjs GLhalfNV x = cmd->x; 517996c5ddc4Srjs GLhalfNV y = cmd->y; 518096c5ddc4Srjs CALL_VertexAttrib2hNV(ctx->CurrentServerDispatch, (index, x, y)); 518196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib2hNV), 8) / 8); 518296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 518396c5ddc4Srjs return cmd_size; 518496c5ddc4Srjs} 518596c5ddc4Srjsvoid GLAPIENTRY 518696c5ddc4Srjs_mesa_marshal_VertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y) 518796c5ddc4Srjs{ 518896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 518996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib2hNV); 519096c5ddc4Srjs struct marshal_cmd_VertexAttrib2hNV *cmd; 519196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib2hNV, cmd_size); 519296c5ddc4Srjs cmd->index = index; 519396c5ddc4Srjs cmd->x = x; 519496c5ddc4Srjs cmd->y = y; 519596c5ddc4Srjs} 519696c5ddc4Srjs 519796c5ddc4Srjs 519896c5ddc4Srjs/* VertexAttrib2hvNV: marshalled asynchronously */ 519996c5ddc4Srjsstruct marshal_cmd_VertexAttrib2hvNV 520096c5ddc4Srjs{ 520196c5ddc4Srjs struct marshal_cmd_base cmd_base; 520296c5ddc4Srjs GLuint index; 520396c5ddc4Srjs GLhalfNV v[2]; 520496c5ddc4Srjs}; 520596c5ddc4Srjsuint32_t 520696c5ddc4Srjs_mesa_unmarshal_VertexAttrib2hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib2hvNV *cmd, const uint64_t *last) 520796c5ddc4Srjs{ 520896c5ddc4Srjs GLuint index = cmd->index; 520996c5ddc4Srjs const GLhalfNV * v = cmd->v; 521096c5ddc4Srjs CALL_VertexAttrib2hvNV(ctx->CurrentServerDispatch, (index, v)); 521196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib2hvNV), 8) / 8); 521296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 521396c5ddc4Srjs return cmd_size; 521496c5ddc4Srjs} 521596c5ddc4Srjsvoid GLAPIENTRY 521696c5ddc4Srjs_mesa_marshal_VertexAttrib2hvNV(GLuint index, const GLhalfNV * v) 521796c5ddc4Srjs{ 521896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 521996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib2hvNV); 522096c5ddc4Srjs struct marshal_cmd_VertexAttrib2hvNV *cmd; 522196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib2hvNV, cmd_size); 522296c5ddc4Srjs cmd->index = index; 522396c5ddc4Srjs memcpy(cmd->v, v, 2 * sizeof(GLhalfNV)); 522496c5ddc4Srjs} 522596c5ddc4Srjs 522696c5ddc4Srjs 522796c5ddc4Srjs/* VertexAttrib3hNV: marshalled asynchronously */ 522896c5ddc4Srjsstruct marshal_cmd_VertexAttrib3hNV 522996c5ddc4Srjs{ 523096c5ddc4Srjs struct marshal_cmd_base cmd_base; 523196c5ddc4Srjs GLhalfNV x; 523296c5ddc4Srjs GLhalfNV y; 523396c5ddc4Srjs GLhalfNV z; 523496c5ddc4Srjs GLuint index; 523596c5ddc4Srjs}; 523696c5ddc4Srjsuint32_t 523796c5ddc4Srjs_mesa_unmarshal_VertexAttrib3hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib3hNV *cmd, const uint64_t *last) 523896c5ddc4Srjs{ 523996c5ddc4Srjs GLuint index = cmd->index; 524096c5ddc4Srjs GLhalfNV x = cmd->x; 524196c5ddc4Srjs GLhalfNV y = cmd->y; 524296c5ddc4Srjs GLhalfNV z = cmd->z; 524396c5ddc4Srjs CALL_VertexAttrib3hNV(ctx->CurrentServerDispatch, (index, x, y, z)); 524496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib3hNV), 8) / 8); 524596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 524696c5ddc4Srjs return cmd_size; 524796c5ddc4Srjs} 524896c5ddc4Srjsvoid GLAPIENTRY 524996c5ddc4Srjs_mesa_marshal_VertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z) 525096c5ddc4Srjs{ 525196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 525296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib3hNV); 525396c5ddc4Srjs struct marshal_cmd_VertexAttrib3hNV *cmd; 525496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib3hNV, cmd_size); 525596c5ddc4Srjs cmd->index = index; 525696c5ddc4Srjs cmd->x = x; 525796c5ddc4Srjs cmd->y = y; 525896c5ddc4Srjs cmd->z = z; 525996c5ddc4Srjs} 526096c5ddc4Srjs 526196c5ddc4Srjs 526296c5ddc4Srjs/* VertexAttrib3hvNV: marshalled asynchronously */ 526396c5ddc4Srjsstruct marshal_cmd_VertexAttrib3hvNV 526496c5ddc4Srjs{ 526596c5ddc4Srjs struct marshal_cmd_base cmd_base; 526696c5ddc4Srjs GLuint index; 526796c5ddc4Srjs GLhalfNV v[3]; 526896c5ddc4Srjs}; 526996c5ddc4Srjsuint32_t 527096c5ddc4Srjs_mesa_unmarshal_VertexAttrib3hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib3hvNV *cmd, const uint64_t *last) 527196c5ddc4Srjs{ 527296c5ddc4Srjs GLuint index = cmd->index; 527396c5ddc4Srjs const GLhalfNV * v = cmd->v; 527496c5ddc4Srjs CALL_VertexAttrib3hvNV(ctx->CurrentServerDispatch, (index, v)); 527596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib3hvNV), 8) / 8); 527696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 527796c5ddc4Srjs return cmd_size; 527896c5ddc4Srjs} 527996c5ddc4Srjsvoid GLAPIENTRY 528096c5ddc4Srjs_mesa_marshal_VertexAttrib3hvNV(GLuint index, const GLhalfNV * v) 528196c5ddc4Srjs{ 528296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 528396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib3hvNV); 528496c5ddc4Srjs struct marshal_cmd_VertexAttrib3hvNV *cmd; 528596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib3hvNV, cmd_size); 528696c5ddc4Srjs cmd->index = index; 528796c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLhalfNV)); 528896c5ddc4Srjs} 528996c5ddc4Srjs 529096c5ddc4Srjs 529196c5ddc4Srjs/* VertexAttrib4hNV: marshalled asynchronously */ 529296c5ddc4Srjsstruct marshal_cmd_VertexAttrib4hNV 529396c5ddc4Srjs{ 529496c5ddc4Srjs struct marshal_cmd_base cmd_base; 529596c5ddc4Srjs GLhalfNV x; 529696c5ddc4Srjs GLhalfNV y; 529796c5ddc4Srjs GLhalfNV z; 529896c5ddc4Srjs GLhalfNV w; 529996c5ddc4Srjs GLuint index; 530096c5ddc4Srjs}; 530196c5ddc4Srjsuint32_t 530296c5ddc4Srjs_mesa_unmarshal_VertexAttrib4hNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib4hNV *cmd, const uint64_t *last) 530396c5ddc4Srjs{ 530496c5ddc4Srjs GLuint index = cmd->index; 530596c5ddc4Srjs GLhalfNV x = cmd->x; 530696c5ddc4Srjs GLhalfNV y = cmd->y; 530796c5ddc4Srjs GLhalfNV z = cmd->z; 530896c5ddc4Srjs GLhalfNV w = cmd->w; 530996c5ddc4Srjs CALL_VertexAttrib4hNV(ctx->CurrentServerDispatch, (index, x, y, z, w)); 531096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib4hNV), 8) / 8); 531196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 531296c5ddc4Srjs return cmd_size; 531396c5ddc4Srjs} 531496c5ddc4Srjsvoid GLAPIENTRY 531596c5ddc4Srjs_mesa_marshal_VertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w) 531696c5ddc4Srjs{ 531796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 531896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib4hNV); 531996c5ddc4Srjs struct marshal_cmd_VertexAttrib4hNV *cmd; 532096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib4hNV, cmd_size); 532196c5ddc4Srjs cmd->index = index; 532296c5ddc4Srjs cmd->x = x; 532396c5ddc4Srjs cmd->y = y; 532496c5ddc4Srjs cmd->z = z; 532596c5ddc4Srjs cmd->w = w; 532696c5ddc4Srjs} 532796c5ddc4Srjs 532896c5ddc4Srjs 532996c5ddc4Srjs/* VertexAttrib4hvNV: marshalled asynchronously */ 533096c5ddc4Srjsstruct marshal_cmd_VertexAttrib4hvNV 533196c5ddc4Srjs{ 533296c5ddc4Srjs struct marshal_cmd_base cmd_base; 533396c5ddc4Srjs GLuint index; 533496c5ddc4Srjs GLhalfNV v[4]; 533596c5ddc4Srjs}; 533696c5ddc4Srjsuint32_t 533796c5ddc4Srjs_mesa_unmarshal_VertexAttrib4hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttrib4hvNV *cmd, const uint64_t *last) 533896c5ddc4Srjs{ 533996c5ddc4Srjs GLuint index = cmd->index; 534096c5ddc4Srjs const GLhalfNV * v = cmd->v; 534196c5ddc4Srjs CALL_VertexAttrib4hvNV(ctx->CurrentServerDispatch, (index, v)); 534296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_VertexAttrib4hvNV), 8) / 8); 534396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 534496c5ddc4Srjs return cmd_size; 534596c5ddc4Srjs} 534696c5ddc4Srjsvoid GLAPIENTRY 534796c5ddc4Srjs_mesa_marshal_VertexAttrib4hvNV(GLuint index, const GLhalfNV * v) 534896c5ddc4Srjs{ 534996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 535096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttrib4hvNV); 535196c5ddc4Srjs struct marshal_cmd_VertexAttrib4hvNV *cmd; 535296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttrib4hvNV, cmd_size); 535396c5ddc4Srjs cmd->index = index; 535496c5ddc4Srjs memcpy(cmd->v, v, 4 * sizeof(GLhalfNV)); 535596c5ddc4Srjs} 535696c5ddc4Srjs 535796c5ddc4Srjs 535896c5ddc4Srjs/* VertexAttribs1hvNV: marshalled asynchronously */ 535996c5ddc4Srjsstruct marshal_cmd_VertexAttribs1hvNV 536096c5ddc4Srjs{ 536196c5ddc4Srjs struct marshal_cmd_base cmd_base; 536296c5ddc4Srjs GLuint index; 536396c5ddc4Srjs GLsizei n; 536496c5ddc4Srjs /* Next safe_mul(n, 1 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n] */ 536596c5ddc4Srjs}; 536696c5ddc4Srjsuint32_t 536796c5ddc4Srjs_mesa_unmarshal_VertexAttribs1hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs1hvNV *cmd, const uint64_t *last) 536896c5ddc4Srjs{ 536996c5ddc4Srjs GLuint index = cmd->index; 537096c5ddc4Srjs GLsizei n = cmd->n; 537196c5ddc4Srjs GLhalfNV * v; 537296c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 537396c5ddc4Srjs v = (GLhalfNV *) variable_data; 537496c5ddc4Srjs CALL_VertexAttribs1hvNV(ctx->CurrentServerDispatch, (index, n, v)); 537596c5ddc4Srjs return cmd->cmd_base.cmd_size; 537696c5ddc4Srjs} 537796c5ddc4Srjsvoid GLAPIENTRY 537896c5ddc4Srjs_mesa_marshal_VertexAttribs1hvNV(GLuint index, GLsizei n, const GLhalfNV * v) 537996c5ddc4Srjs{ 538096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 538196c5ddc4Srjs int v_size = safe_mul(n, 1 * sizeof(GLhalfNV)); 538296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribs1hvNV) + v_size; 538396c5ddc4Srjs struct marshal_cmd_VertexAttribs1hvNV *cmd; 538496c5ddc4Srjs if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 538596c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VertexAttribs1hvNV"); 538696c5ddc4Srjs CALL_VertexAttribs1hvNV(ctx->CurrentServerDispatch, (index, n, v)); 538796c5ddc4Srjs return; 538896c5ddc4Srjs } 538996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs1hvNV, cmd_size); 539096c5ddc4Srjs cmd->index = index; 539196c5ddc4Srjs cmd->n = n; 539296c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 539396c5ddc4Srjs memcpy(variable_data, v, v_size); 539496c5ddc4Srjs} 539596c5ddc4Srjs 539696c5ddc4Srjs 539796c5ddc4Srjs/* VertexAttribs2hvNV: marshalled asynchronously */ 539896c5ddc4Srjsstruct marshal_cmd_VertexAttribs2hvNV 539996c5ddc4Srjs{ 540096c5ddc4Srjs struct marshal_cmd_base cmd_base; 540196c5ddc4Srjs GLuint index; 540296c5ddc4Srjs GLsizei n; 540396c5ddc4Srjs /* Next safe_mul(n, 2 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n][2] */ 540496c5ddc4Srjs}; 540596c5ddc4Srjsuint32_t 540696c5ddc4Srjs_mesa_unmarshal_VertexAttribs2hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs2hvNV *cmd, const uint64_t *last) 540796c5ddc4Srjs{ 540896c5ddc4Srjs GLuint index = cmd->index; 540996c5ddc4Srjs GLsizei n = cmd->n; 541096c5ddc4Srjs GLhalfNV * v; 541196c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 541296c5ddc4Srjs v = (GLhalfNV *) variable_data; 541396c5ddc4Srjs CALL_VertexAttribs2hvNV(ctx->CurrentServerDispatch, (index, n, v)); 541496c5ddc4Srjs return cmd->cmd_base.cmd_size; 541596c5ddc4Srjs} 541696c5ddc4Srjsvoid GLAPIENTRY 541796c5ddc4Srjs_mesa_marshal_VertexAttribs2hvNV(GLuint index, GLsizei n, const GLhalfNV * v) 541896c5ddc4Srjs{ 541996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 542096c5ddc4Srjs int v_size = safe_mul(n, 2 * sizeof(GLhalfNV)); 542196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribs2hvNV) + v_size; 542296c5ddc4Srjs struct marshal_cmd_VertexAttribs2hvNV *cmd; 542396c5ddc4Srjs if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 542496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VertexAttribs2hvNV"); 542596c5ddc4Srjs CALL_VertexAttribs2hvNV(ctx->CurrentServerDispatch, (index, n, v)); 542696c5ddc4Srjs return; 542796c5ddc4Srjs } 542896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs2hvNV, cmd_size); 542996c5ddc4Srjs cmd->index = index; 543096c5ddc4Srjs cmd->n = n; 543196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 543296c5ddc4Srjs memcpy(variable_data, v, v_size); 543396c5ddc4Srjs} 543496c5ddc4Srjs 543596c5ddc4Srjs 543696c5ddc4Srjs/* VertexAttribs3hvNV: marshalled asynchronously */ 543796c5ddc4Srjsstruct marshal_cmd_VertexAttribs3hvNV 543896c5ddc4Srjs{ 543996c5ddc4Srjs struct marshal_cmd_base cmd_base; 544096c5ddc4Srjs GLuint index; 544196c5ddc4Srjs GLsizei n; 544296c5ddc4Srjs /* Next safe_mul(n, 3 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n][3] */ 544396c5ddc4Srjs}; 544496c5ddc4Srjsuint32_t 544596c5ddc4Srjs_mesa_unmarshal_VertexAttribs3hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs3hvNV *cmd, const uint64_t *last) 544696c5ddc4Srjs{ 544796c5ddc4Srjs GLuint index = cmd->index; 544896c5ddc4Srjs GLsizei n = cmd->n; 544996c5ddc4Srjs GLhalfNV * v; 545096c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 545196c5ddc4Srjs v = (GLhalfNV *) variable_data; 545296c5ddc4Srjs CALL_VertexAttribs3hvNV(ctx->CurrentServerDispatch, (index, n, v)); 545396c5ddc4Srjs return cmd->cmd_base.cmd_size; 545496c5ddc4Srjs} 545596c5ddc4Srjsvoid GLAPIENTRY 545696c5ddc4Srjs_mesa_marshal_VertexAttribs3hvNV(GLuint index, GLsizei n, const GLhalfNV * v) 545796c5ddc4Srjs{ 545896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 545996c5ddc4Srjs int v_size = safe_mul(n, 3 * sizeof(GLhalfNV)); 546096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribs3hvNV) + v_size; 546196c5ddc4Srjs struct marshal_cmd_VertexAttribs3hvNV *cmd; 546296c5ddc4Srjs if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 546396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VertexAttribs3hvNV"); 546496c5ddc4Srjs CALL_VertexAttribs3hvNV(ctx->CurrentServerDispatch, (index, n, v)); 546596c5ddc4Srjs return; 546696c5ddc4Srjs } 546796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs3hvNV, cmd_size); 546896c5ddc4Srjs cmd->index = index; 546996c5ddc4Srjs cmd->n = n; 547096c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 547196c5ddc4Srjs memcpy(variable_data, v, v_size); 547296c5ddc4Srjs} 547396c5ddc4Srjs 547496c5ddc4Srjs 547596c5ddc4Srjs/* VertexAttribs4hvNV: marshalled asynchronously */ 547696c5ddc4Srjsstruct marshal_cmd_VertexAttribs4hvNV 547796c5ddc4Srjs{ 547896c5ddc4Srjs struct marshal_cmd_base cmd_base; 547996c5ddc4Srjs GLuint index; 548096c5ddc4Srjs GLsizei n; 548196c5ddc4Srjs /* Next safe_mul(n, 4 * sizeof(GLhalfNV)) bytes are GLhalfNV v[n][4] */ 548296c5ddc4Srjs}; 548396c5ddc4Srjsuint32_t 548496c5ddc4Srjs_mesa_unmarshal_VertexAttribs4hvNV(struct gl_context *ctx, const struct marshal_cmd_VertexAttribs4hvNV *cmd, const uint64_t *last) 548596c5ddc4Srjs{ 548696c5ddc4Srjs GLuint index = cmd->index; 548796c5ddc4Srjs GLsizei n = cmd->n; 548896c5ddc4Srjs GLhalfNV * v; 548996c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 549096c5ddc4Srjs v = (GLhalfNV *) variable_data; 549196c5ddc4Srjs CALL_VertexAttribs4hvNV(ctx->CurrentServerDispatch, (index, n, v)); 549296c5ddc4Srjs return cmd->cmd_base.cmd_size; 549396c5ddc4Srjs} 549496c5ddc4Srjsvoid GLAPIENTRY 549596c5ddc4Srjs_mesa_marshal_VertexAttribs4hvNV(GLuint index, GLsizei n, const GLhalfNV * v) 549696c5ddc4Srjs{ 549796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 549896c5ddc4Srjs int v_size = safe_mul(n, 4 * sizeof(GLhalfNV)); 549996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_VertexAttribs4hvNV) + v_size; 550096c5ddc4Srjs struct marshal_cmd_VertexAttribs4hvNV *cmd; 550196c5ddc4Srjs if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 550296c5ddc4Srjs _mesa_glthread_finish_before(ctx, "VertexAttribs4hvNV"); 550396c5ddc4Srjs CALL_VertexAttribs4hvNV(ctx->CurrentServerDispatch, (index, n, v)); 550496c5ddc4Srjs return; 550596c5ddc4Srjs } 550696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_VertexAttribs4hvNV, cmd_size); 550796c5ddc4Srjs cmd->index = index; 550896c5ddc4Srjs cmd->n = n; 550996c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 551096c5ddc4Srjs memcpy(variable_data, v, v_size); 551196c5ddc4Srjs} 551296c5ddc4Srjs 551396c5ddc4Srjs 551496c5ddc4Srjs/* FogCoordhNV: marshalled asynchronously */ 551596c5ddc4Srjsstruct marshal_cmd_FogCoordhNV 551696c5ddc4Srjs{ 551796c5ddc4Srjs struct marshal_cmd_base cmd_base; 551896c5ddc4Srjs GLhalfNV x; 551996c5ddc4Srjs}; 552096c5ddc4Srjsuint32_t 552196c5ddc4Srjs_mesa_unmarshal_FogCoordhNV(struct gl_context *ctx, const struct marshal_cmd_FogCoordhNV *cmd, const uint64_t *last) 552296c5ddc4Srjs{ 552396c5ddc4Srjs GLhalfNV x = cmd->x; 552496c5ddc4Srjs CALL_FogCoordhNV(ctx->CurrentServerDispatch, (x)); 552596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FogCoordhNV), 8) / 8); 552696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 552796c5ddc4Srjs return cmd_size; 552896c5ddc4Srjs} 552996c5ddc4Srjsvoid GLAPIENTRY 553096c5ddc4Srjs_mesa_marshal_FogCoordhNV(GLhalfNV x) 553196c5ddc4Srjs{ 553296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 553396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_FogCoordhNV); 553496c5ddc4Srjs struct marshal_cmd_FogCoordhNV *cmd; 553596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FogCoordhNV, cmd_size); 553696c5ddc4Srjs cmd->x = x; 553796c5ddc4Srjs} 553896c5ddc4Srjs 553996c5ddc4Srjs 554096c5ddc4Srjs/* FogCoordhvNV: marshalled asynchronously */ 554196c5ddc4Srjsstruct marshal_cmd_FogCoordhvNV 554296c5ddc4Srjs{ 554396c5ddc4Srjs struct marshal_cmd_base cmd_base; 554496c5ddc4Srjs GLhalfNV v[1]; 554596c5ddc4Srjs}; 554696c5ddc4Srjsuint32_t 554796c5ddc4Srjs_mesa_unmarshal_FogCoordhvNV(struct gl_context *ctx, const struct marshal_cmd_FogCoordhvNV *cmd, const uint64_t *last) 554896c5ddc4Srjs{ 554996c5ddc4Srjs const GLhalfNV * v = cmd->v; 555096c5ddc4Srjs CALL_FogCoordhvNV(ctx->CurrentServerDispatch, (v)); 555196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FogCoordhvNV), 8) / 8); 555296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 555396c5ddc4Srjs return cmd_size; 555496c5ddc4Srjs} 555596c5ddc4Srjsvoid GLAPIENTRY 555696c5ddc4Srjs_mesa_marshal_FogCoordhvNV(const GLhalfNV * v) 555796c5ddc4Srjs{ 555896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 555996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_FogCoordhvNV); 556096c5ddc4Srjs struct marshal_cmd_FogCoordhvNV *cmd; 556196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FogCoordhvNV, cmd_size); 556296c5ddc4Srjs memcpy(cmd->v, v, 1 * sizeof(GLhalfNV)); 556396c5ddc4Srjs} 556496c5ddc4Srjs 556596c5ddc4Srjs 556696c5ddc4Srjs/* SecondaryColor3hNV: marshalled asynchronously */ 556796c5ddc4Srjsstruct marshal_cmd_SecondaryColor3hNV 556896c5ddc4Srjs{ 556996c5ddc4Srjs struct marshal_cmd_base cmd_base; 557096c5ddc4Srjs GLhalfNV red; 557196c5ddc4Srjs GLhalfNV green; 557296c5ddc4Srjs GLhalfNV blue; 557396c5ddc4Srjs}; 557496c5ddc4Srjsuint32_t 557596c5ddc4Srjs_mesa_unmarshal_SecondaryColor3hNV(struct gl_context *ctx, const struct marshal_cmd_SecondaryColor3hNV *cmd, const uint64_t *last) 557696c5ddc4Srjs{ 557796c5ddc4Srjs GLhalfNV red = cmd->red; 557896c5ddc4Srjs GLhalfNV green = cmd->green; 557996c5ddc4Srjs GLhalfNV blue = cmd->blue; 558096c5ddc4Srjs CALL_SecondaryColor3hNV(ctx->CurrentServerDispatch, (red, green, blue)); 558196c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SecondaryColor3hNV), 8) / 8); 558296c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 558396c5ddc4Srjs return cmd_size; 558496c5ddc4Srjs} 558596c5ddc4Srjsvoid GLAPIENTRY 558696c5ddc4Srjs_mesa_marshal_SecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue) 558796c5ddc4Srjs{ 558896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 558996c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_SecondaryColor3hNV); 559096c5ddc4Srjs struct marshal_cmd_SecondaryColor3hNV *cmd; 559196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SecondaryColor3hNV, cmd_size); 559296c5ddc4Srjs cmd->red = red; 559396c5ddc4Srjs cmd->green = green; 559496c5ddc4Srjs cmd->blue = blue; 559596c5ddc4Srjs} 559696c5ddc4Srjs 559796c5ddc4Srjs 559896c5ddc4Srjs/* SecondaryColor3hvNV: marshalled asynchronously */ 559996c5ddc4Srjsstruct marshal_cmd_SecondaryColor3hvNV 560096c5ddc4Srjs{ 560196c5ddc4Srjs struct marshal_cmd_base cmd_base; 560296c5ddc4Srjs GLhalfNV v[3]; 560396c5ddc4Srjs}; 560496c5ddc4Srjsuint32_t 560596c5ddc4Srjs_mesa_unmarshal_SecondaryColor3hvNV(struct gl_context *ctx, const struct marshal_cmd_SecondaryColor3hvNV *cmd, const uint64_t *last) 560696c5ddc4Srjs{ 560796c5ddc4Srjs const GLhalfNV * v = cmd->v; 560896c5ddc4Srjs CALL_SecondaryColor3hvNV(ctx->CurrentServerDispatch, (v)); 560996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SecondaryColor3hvNV), 8) / 8); 561096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 561196c5ddc4Srjs return cmd_size; 561296c5ddc4Srjs} 561396c5ddc4Srjsvoid GLAPIENTRY 561496c5ddc4Srjs_mesa_marshal_SecondaryColor3hvNV(const GLhalfNV * v) 561596c5ddc4Srjs{ 561696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 561796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_SecondaryColor3hvNV); 561896c5ddc4Srjs struct marshal_cmd_SecondaryColor3hvNV *cmd; 561996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SecondaryColor3hvNV, cmd_size); 562096c5ddc4Srjs memcpy(cmd->v, v, 3 * sizeof(GLhalfNV)); 562196c5ddc4Srjs} 562296c5ddc4Srjs 562396c5ddc4Srjs 562496c5ddc4Srjs/* MemoryBarrierByRegion: marshalled asynchronously */ 562596c5ddc4Srjsstruct marshal_cmd_MemoryBarrierByRegion 562696c5ddc4Srjs{ 562796c5ddc4Srjs struct marshal_cmd_base cmd_base; 562896c5ddc4Srjs GLbitfield barriers; 562996c5ddc4Srjs}; 563096c5ddc4Srjsuint32_t 563196c5ddc4Srjs_mesa_unmarshal_MemoryBarrierByRegion(struct gl_context *ctx, const struct marshal_cmd_MemoryBarrierByRegion *cmd, const uint64_t *last) 563296c5ddc4Srjs{ 563396c5ddc4Srjs GLbitfield barriers = cmd->barriers; 563496c5ddc4Srjs CALL_MemoryBarrierByRegion(ctx->CurrentServerDispatch, (barriers)); 563596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MemoryBarrierByRegion), 8) / 8); 563696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 563796c5ddc4Srjs return cmd_size; 563896c5ddc4Srjs} 563996c5ddc4Srjsvoid GLAPIENTRY 564096c5ddc4Srjs_mesa_marshal_MemoryBarrierByRegion(GLbitfield barriers) 564196c5ddc4Srjs{ 564296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 564396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MemoryBarrierByRegion); 564496c5ddc4Srjs struct marshal_cmd_MemoryBarrierByRegion *cmd; 564596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MemoryBarrierByRegion, cmd_size); 564696c5ddc4Srjs cmd->barriers = barriers; 564796c5ddc4Srjs} 564896c5ddc4Srjs 564996c5ddc4Srjs 565096c5ddc4Srjs/* AlphaFuncx: marshalled asynchronously */ 565196c5ddc4Srjsstruct marshal_cmd_AlphaFuncx 565296c5ddc4Srjs{ 565396c5ddc4Srjs struct marshal_cmd_base cmd_base; 565496c5ddc4Srjs GLenum func; 565596c5ddc4Srjs GLclampx ref; 565696c5ddc4Srjs}; 565796c5ddc4Srjsuint32_t 565896c5ddc4Srjs_mesa_unmarshal_AlphaFuncx(struct gl_context *ctx, const struct marshal_cmd_AlphaFuncx *cmd, const uint64_t *last) 565996c5ddc4Srjs{ 566096c5ddc4Srjs GLenum func = cmd->func; 566196c5ddc4Srjs GLclampx ref = cmd->ref; 566296c5ddc4Srjs CALL_AlphaFuncx(ctx->CurrentServerDispatch, (func, ref)); 566396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_AlphaFuncx), 8) / 8); 566496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 566596c5ddc4Srjs return cmd_size; 566696c5ddc4Srjs} 566796c5ddc4Srjsvoid GLAPIENTRY 566896c5ddc4Srjs_mesa_marshal_AlphaFuncx(GLenum func, GLclampx ref) 566996c5ddc4Srjs{ 567096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 567196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_AlphaFuncx); 567296c5ddc4Srjs struct marshal_cmd_AlphaFuncx *cmd; 567396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_AlphaFuncx, cmd_size); 567496c5ddc4Srjs cmd->func = func; 567596c5ddc4Srjs cmd->ref = ref; 567696c5ddc4Srjs} 567796c5ddc4Srjs 567896c5ddc4Srjs 567996c5ddc4Srjs/* ClearColorx: marshalled asynchronously */ 568096c5ddc4Srjsstruct marshal_cmd_ClearColorx 568196c5ddc4Srjs{ 568296c5ddc4Srjs struct marshal_cmd_base cmd_base; 568396c5ddc4Srjs GLclampx red; 568496c5ddc4Srjs GLclampx green; 568596c5ddc4Srjs GLclampx blue; 568696c5ddc4Srjs GLclampx alpha; 568796c5ddc4Srjs}; 568896c5ddc4Srjsuint32_t 568996c5ddc4Srjs_mesa_unmarshal_ClearColorx(struct gl_context *ctx, const struct marshal_cmd_ClearColorx *cmd, const uint64_t *last) 569096c5ddc4Srjs{ 569196c5ddc4Srjs GLclampx red = cmd->red; 569296c5ddc4Srjs GLclampx green = cmd->green; 569396c5ddc4Srjs GLclampx blue = cmd->blue; 569496c5ddc4Srjs GLclampx alpha = cmd->alpha; 569596c5ddc4Srjs CALL_ClearColorx(ctx->CurrentServerDispatch, (red, green, blue, alpha)); 569696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearColorx), 8) / 8); 569796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 569896c5ddc4Srjs return cmd_size; 569996c5ddc4Srjs} 570096c5ddc4Srjsvoid GLAPIENTRY 570196c5ddc4Srjs_mesa_marshal_ClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) 570296c5ddc4Srjs{ 570396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 570496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearColorx); 570596c5ddc4Srjs struct marshal_cmd_ClearColorx *cmd; 570696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearColorx, cmd_size); 570796c5ddc4Srjs cmd->red = red; 570896c5ddc4Srjs cmd->green = green; 570996c5ddc4Srjs cmd->blue = blue; 571096c5ddc4Srjs cmd->alpha = alpha; 571196c5ddc4Srjs} 571296c5ddc4Srjs 571396c5ddc4Srjs 571496c5ddc4Srjs/* ClearDepthx: marshalled asynchronously */ 571596c5ddc4Srjsstruct marshal_cmd_ClearDepthx 571696c5ddc4Srjs{ 571796c5ddc4Srjs struct marshal_cmd_base cmd_base; 571896c5ddc4Srjs GLclampx depth; 571996c5ddc4Srjs}; 572096c5ddc4Srjsuint32_t 572196c5ddc4Srjs_mesa_unmarshal_ClearDepthx(struct gl_context *ctx, const struct marshal_cmd_ClearDepthx *cmd, const uint64_t *last) 572296c5ddc4Srjs{ 572396c5ddc4Srjs GLclampx depth = cmd->depth; 572496c5ddc4Srjs CALL_ClearDepthx(ctx->CurrentServerDispatch, (depth)); 572596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClearDepthx), 8) / 8); 572696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 572796c5ddc4Srjs return cmd_size; 572896c5ddc4Srjs} 572996c5ddc4Srjsvoid GLAPIENTRY 573096c5ddc4Srjs_mesa_marshal_ClearDepthx(GLclampx depth) 573196c5ddc4Srjs{ 573296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 573396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClearDepthx); 573496c5ddc4Srjs struct marshal_cmd_ClearDepthx *cmd; 573596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClearDepthx, cmd_size); 573696c5ddc4Srjs cmd->depth = depth; 573796c5ddc4Srjs} 573896c5ddc4Srjs 573996c5ddc4Srjs 574096c5ddc4Srjs/* Color4x: marshalled asynchronously */ 574196c5ddc4Srjsstruct marshal_cmd_Color4x 574296c5ddc4Srjs{ 574396c5ddc4Srjs struct marshal_cmd_base cmd_base; 574496c5ddc4Srjs GLfixed red; 574596c5ddc4Srjs GLfixed green; 574696c5ddc4Srjs GLfixed blue; 574796c5ddc4Srjs GLfixed alpha; 574896c5ddc4Srjs}; 574996c5ddc4Srjsuint32_t 575096c5ddc4Srjs_mesa_unmarshal_Color4x(struct gl_context *ctx, const struct marshal_cmd_Color4x *cmd, const uint64_t *last) 575196c5ddc4Srjs{ 575296c5ddc4Srjs GLfixed red = cmd->red; 575396c5ddc4Srjs GLfixed green = cmd->green; 575496c5ddc4Srjs GLfixed blue = cmd->blue; 575596c5ddc4Srjs GLfixed alpha = cmd->alpha; 575696c5ddc4Srjs CALL_Color4x(ctx->CurrentServerDispatch, (red, green, blue, alpha)); 575796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Color4x), 8) / 8); 575896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 575996c5ddc4Srjs return cmd_size; 576096c5ddc4Srjs} 576196c5ddc4Srjsvoid GLAPIENTRY 576296c5ddc4Srjs_mesa_marshal_Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) 576396c5ddc4Srjs{ 576496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 576596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Color4x); 576696c5ddc4Srjs struct marshal_cmd_Color4x *cmd; 576796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Color4x, cmd_size); 576896c5ddc4Srjs cmd->red = red; 576996c5ddc4Srjs cmd->green = green; 577096c5ddc4Srjs cmd->blue = blue; 577196c5ddc4Srjs cmd->alpha = alpha; 577296c5ddc4Srjs} 577396c5ddc4Srjs 577496c5ddc4Srjs 577596c5ddc4Srjs/* DepthRangex: marshalled asynchronously */ 577696c5ddc4Srjsstruct marshal_cmd_DepthRangex 577796c5ddc4Srjs{ 577896c5ddc4Srjs struct marshal_cmd_base cmd_base; 577996c5ddc4Srjs GLclampx zNear; 578096c5ddc4Srjs GLclampx zFar; 578196c5ddc4Srjs}; 578296c5ddc4Srjsuint32_t 578396c5ddc4Srjs_mesa_unmarshal_DepthRangex(struct gl_context *ctx, const struct marshal_cmd_DepthRangex *cmd, const uint64_t *last) 578496c5ddc4Srjs{ 578596c5ddc4Srjs GLclampx zNear = cmd->zNear; 578696c5ddc4Srjs GLclampx zFar = cmd->zFar; 578796c5ddc4Srjs CALL_DepthRangex(ctx->CurrentServerDispatch, (zNear, zFar)); 578896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DepthRangex), 8) / 8); 578996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 579096c5ddc4Srjs return cmd_size; 579196c5ddc4Srjs} 579296c5ddc4Srjsvoid GLAPIENTRY 579396c5ddc4Srjs_mesa_marshal_DepthRangex(GLclampx zNear, GLclampx zFar) 579496c5ddc4Srjs{ 579596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 579696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DepthRangex); 579796c5ddc4Srjs struct marshal_cmd_DepthRangex *cmd; 579896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DepthRangex, cmd_size); 579996c5ddc4Srjs cmd->zNear = zNear; 580096c5ddc4Srjs cmd->zFar = zFar; 580196c5ddc4Srjs} 580296c5ddc4Srjs 580396c5ddc4Srjs 580496c5ddc4Srjs/* Fogx: marshalled asynchronously */ 580596c5ddc4Srjsstruct marshal_cmd_Fogx 580696c5ddc4Srjs{ 580796c5ddc4Srjs struct marshal_cmd_base cmd_base; 580896c5ddc4Srjs GLenum pname; 580996c5ddc4Srjs GLfixed param; 581096c5ddc4Srjs}; 581196c5ddc4Srjsuint32_t 581296c5ddc4Srjs_mesa_unmarshal_Fogx(struct gl_context *ctx, const struct marshal_cmd_Fogx *cmd, const uint64_t *last) 581396c5ddc4Srjs{ 581496c5ddc4Srjs GLenum pname = cmd->pname; 581596c5ddc4Srjs GLfixed param = cmd->param; 581696c5ddc4Srjs CALL_Fogx(ctx->CurrentServerDispatch, (pname, param)); 581796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Fogx), 8) / 8); 581896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 581996c5ddc4Srjs return cmd_size; 582096c5ddc4Srjs} 582196c5ddc4Srjsvoid GLAPIENTRY 582296c5ddc4Srjs_mesa_marshal_Fogx(GLenum pname, GLfixed param) 582396c5ddc4Srjs{ 582496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 582596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Fogx); 582696c5ddc4Srjs struct marshal_cmd_Fogx *cmd; 582796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Fogx, cmd_size); 582896c5ddc4Srjs cmd->pname = pname; 582996c5ddc4Srjs cmd->param = param; 583096c5ddc4Srjs} 583196c5ddc4Srjs 583296c5ddc4Srjs 583396c5ddc4Srjs/* Fogxv: marshalled asynchronously */ 583496c5ddc4Srjsstruct marshal_cmd_Fogxv 583596c5ddc4Srjs{ 583696c5ddc4Srjs struct marshal_cmd_base cmd_base; 583796c5ddc4Srjs GLenum pname; 583896c5ddc4Srjs /* Next safe_mul(_mesa_fog_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */ 583996c5ddc4Srjs}; 584096c5ddc4Srjsuint32_t 584196c5ddc4Srjs_mesa_unmarshal_Fogxv(struct gl_context *ctx, const struct marshal_cmd_Fogxv *cmd, const uint64_t *last) 584296c5ddc4Srjs{ 584396c5ddc4Srjs GLenum pname = cmd->pname; 584496c5ddc4Srjs GLfixed * params; 584596c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 584696c5ddc4Srjs params = (GLfixed *) variable_data; 584796c5ddc4Srjs CALL_Fogxv(ctx->CurrentServerDispatch, (pname, params)); 584896c5ddc4Srjs return cmd->cmd_base.cmd_size; 584996c5ddc4Srjs} 585096c5ddc4Srjsvoid GLAPIENTRY 585196c5ddc4Srjs_mesa_marshal_Fogxv(GLenum pname, const GLfixed * params) 585296c5ddc4Srjs{ 585396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 585496c5ddc4Srjs int params_size = safe_mul(_mesa_fog_enum_to_count(pname), 1 * sizeof(GLfixed)); 585596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Fogxv) + params_size; 585696c5ddc4Srjs struct marshal_cmd_Fogxv *cmd; 585796c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 585896c5ddc4Srjs _mesa_glthread_finish_before(ctx, "Fogxv"); 585996c5ddc4Srjs CALL_Fogxv(ctx->CurrentServerDispatch, (pname, params)); 586096c5ddc4Srjs return; 586196c5ddc4Srjs } 586296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Fogxv, cmd_size); 586396c5ddc4Srjs cmd->pname = pname; 586496c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 586596c5ddc4Srjs memcpy(variable_data, params, params_size); 586696c5ddc4Srjs} 586796c5ddc4Srjs 586896c5ddc4Srjs 586996c5ddc4Srjs/* Frustumx: marshalled asynchronously */ 587096c5ddc4Srjsstruct marshal_cmd_Frustumx 587196c5ddc4Srjs{ 587296c5ddc4Srjs struct marshal_cmd_base cmd_base; 587396c5ddc4Srjs GLfixed left; 587496c5ddc4Srjs GLfixed right; 587596c5ddc4Srjs GLfixed bottom; 587696c5ddc4Srjs GLfixed top; 587796c5ddc4Srjs GLfixed zNear; 587896c5ddc4Srjs GLfixed zFar; 587996c5ddc4Srjs}; 588096c5ddc4Srjsuint32_t 588196c5ddc4Srjs_mesa_unmarshal_Frustumx(struct gl_context *ctx, const struct marshal_cmd_Frustumx *cmd, const uint64_t *last) 588296c5ddc4Srjs{ 588396c5ddc4Srjs GLfixed left = cmd->left; 588496c5ddc4Srjs GLfixed right = cmd->right; 588596c5ddc4Srjs GLfixed bottom = cmd->bottom; 588696c5ddc4Srjs GLfixed top = cmd->top; 588796c5ddc4Srjs GLfixed zNear = cmd->zNear; 588896c5ddc4Srjs GLfixed zFar = cmd->zFar; 588996c5ddc4Srjs CALL_Frustumx(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar)); 589096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Frustumx), 8) / 8); 589196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 589296c5ddc4Srjs return cmd_size; 589396c5ddc4Srjs} 589496c5ddc4Srjsvoid GLAPIENTRY 589596c5ddc4Srjs_mesa_marshal_Frustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) 589696c5ddc4Srjs{ 589796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 589896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Frustumx); 589996c5ddc4Srjs struct marshal_cmd_Frustumx *cmd; 590096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Frustumx, cmd_size); 590196c5ddc4Srjs cmd->left = left; 590296c5ddc4Srjs cmd->right = right; 590396c5ddc4Srjs cmd->bottom = bottom; 590496c5ddc4Srjs cmd->top = top; 590596c5ddc4Srjs cmd->zNear = zNear; 590696c5ddc4Srjs cmd->zFar = zFar; 590796c5ddc4Srjs} 590896c5ddc4Srjs 590996c5ddc4Srjs 591096c5ddc4Srjs/* LightModelx: marshalled asynchronously */ 591196c5ddc4Srjsstruct marshal_cmd_LightModelx 591296c5ddc4Srjs{ 591396c5ddc4Srjs struct marshal_cmd_base cmd_base; 591496c5ddc4Srjs GLenum pname; 591596c5ddc4Srjs GLfixed param; 591696c5ddc4Srjs}; 591796c5ddc4Srjsuint32_t 591896c5ddc4Srjs_mesa_unmarshal_LightModelx(struct gl_context *ctx, const struct marshal_cmd_LightModelx *cmd, const uint64_t *last) 591996c5ddc4Srjs{ 592096c5ddc4Srjs GLenum pname = cmd->pname; 592196c5ddc4Srjs GLfixed param = cmd->param; 592296c5ddc4Srjs CALL_LightModelx(ctx->CurrentServerDispatch, (pname, param)); 592396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_LightModelx), 8) / 8); 592496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 592596c5ddc4Srjs return cmd_size; 592696c5ddc4Srjs} 592796c5ddc4Srjsvoid GLAPIENTRY 592896c5ddc4Srjs_mesa_marshal_LightModelx(GLenum pname, GLfixed param) 592996c5ddc4Srjs{ 593096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 593196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_LightModelx); 593296c5ddc4Srjs struct marshal_cmd_LightModelx *cmd; 593396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LightModelx, cmd_size); 593496c5ddc4Srjs cmd->pname = pname; 593596c5ddc4Srjs cmd->param = param; 593696c5ddc4Srjs} 593796c5ddc4Srjs 593896c5ddc4Srjs 593996c5ddc4Srjs/* LightModelxv: marshalled asynchronously */ 594096c5ddc4Srjsstruct marshal_cmd_LightModelxv 594196c5ddc4Srjs{ 594296c5ddc4Srjs struct marshal_cmd_base cmd_base; 594396c5ddc4Srjs GLenum pname; 594496c5ddc4Srjs /* Next safe_mul(_mesa_light_model_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */ 594596c5ddc4Srjs}; 594696c5ddc4Srjsuint32_t 594796c5ddc4Srjs_mesa_unmarshal_LightModelxv(struct gl_context *ctx, const struct marshal_cmd_LightModelxv *cmd, const uint64_t *last) 594896c5ddc4Srjs{ 594996c5ddc4Srjs GLenum pname = cmd->pname; 595096c5ddc4Srjs GLfixed * params; 595196c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 595296c5ddc4Srjs params = (GLfixed *) variable_data; 595396c5ddc4Srjs CALL_LightModelxv(ctx->CurrentServerDispatch, (pname, params)); 595496c5ddc4Srjs return cmd->cmd_base.cmd_size; 595596c5ddc4Srjs} 595696c5ddc4Srjsvoid GLAPIENTRY 595796c5ddc4Srjs_mesa_marshal_LightModelxv(GLenum pname, const GLfixed * params) 595896c5ddc4Srjs{ 595996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 596096c5ddc4Srjs int params_size = safe_mul(_mesa_light_model_enum_to_count(pname), 1 * sizeof(GLfixed)); 596196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_LightModelxv) + params_size; 596296c5ddc4Srjs struct marshal_cmd_LightModelxv *cmd; 596396c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 596496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "LightModelxv"); 596596c5ddc4Srjs CALL_LightModelxv(ctx->CurrentServerDispatch, (pname, params)); 596696c5ddc4Srjs return; 596796c5ddc4Srjs } 596896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LightModelxv, cmd_size); 596996c5ddc4Srjs cmd->pname = pname; 597096c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 597196c5ddc4Srjs memcpy(variable_data, params, params_size); 597296c5ddc4Srjs} 597396c5ddc4Srjs 597496c5ddc4Srjs 597596c5ddc4Srjs/* Lightx: marshalled asynchronously */ 597696c5ddc4Srjsstruct marshal_cmd_Lightx 597796c5ddc4Srjs{ 597896c5ddc4Srjs struct marshal_cmd_base cmd_base; 597996c5ddc4Srjs GLenum light; 598096c5ddc4Srjs GLenum pname; 598196c5ddc4Srjs GLfixed param; 598296c5ddc4Srjs}; 598396c5ddc4Srjsuint32_t 598496c5ddc4Srjs_mesa_unmarshal_Lightx(struct gl_context *ctx, const struct marshal_cmd_Lightx *cmd, const uint64_t *last) 598596c5ddc4Srjs{ 598696c5ddc4Srjs GLenum light = cmd->light; 598796c5ddc4Srjs GLenum pname = cmd->pname; 598896c5ddc4Srjs GLfixed param = cmd->param; 598996c5ddc4Srjs CALL_Lightx(ctx->CurrentServerDispatch, (light, pname, param)); 599096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Lightx), 8) / 8); 599196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 599296c5ddc4Srjs return cmd_size; 599396c5ddc4Srjs} 599496c5ddc4Srjsvoid GLAPIENTRY 599596c5ddc4Srjs_mesa_marshal_Lightx(GLenum light, GLenum pname, GLfixed param) 599696c5ddc4Srjs{ 599796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 599896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Lightx); 599996c5ddc4Srjs struct marshal_cmd_Lightx *cmd; 600096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Lightx, cmd_size); 600196c5ddc4Srjs cmd->light = light; 600296c5ddc4Srjs cmd->pname = pname; 600396c5ddc4Srjs cmd->param = param; 600496c5ddc4Srjs} 600596c5ddc4Srjs 600696c5ddc4Srjs 600796c5ddc4Srjs/* Lightxv: marshalled asynchronously */ 600896c5ddc4Srjsstruct marshal_cmd_Lightxv 600996c5ddc4Srjs{ 601096c5ddc4Srjs struct marshal_cmd_base cmd_base; 601196c5ddc4Srjs GLenum light; 601296c5ddc4Srjs GLenum pname; 601396c5ddc4Srjs /* Next safe_mul(_mesa_light_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */ 601496c5ddc4Srjs}; 601596c5ddc4Srjsuint32_t 601696c5ddc4Srjs_mesa_unmarshal_Lightxv(struct gl_context *ctx, const struct marshal_cmd_Lightxv *cmd, const uint64_t *last) 601796c5ddc4Srjs{ 601896c5ddc4Srjs GLenum light = cmd->light; 601996c5ddc4Srjs GLenum pname = cmd->pname; 602096c5ddc4Srjs GLfixed * params; 602196c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 602296c5ddc4Srjs params = (GLfixed *) variable_data; 602396c5ddc4Srjs CALL_Lightxv(ctx->CurrentServerDispatch, (light, pname, params)); 602496c5ddc4Srjs return cmd->cmd_base.cmd_size; 602596c5ddc4Srjs} 602696c5ddc4Srjsvoid GLAPIENTRY 602796c5ddc4Srjs_mesa_marshal_Lightxv(GLenum light, GLenum pname, const GLfixed * params) 602896c5ddc4Srjs{ 602996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 603096c5ddc4Srjs int params_size = safe_mul(_mesa_light_enum_to_count(pname), 1 * sizeof(GLfixed)); 603196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Lightxv) + params_size; 603296c5ddc4Srjs struct marshal_cmd_Lightxv *cmd; 603396c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 603496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "Lightxv"); 603596c5ddc4Srjs CALL_Lightxv(ctx->CurrentServerDispatch, (light, pname, params)); 603696c5ddc4Srjs return; 603796c5ddc4Srjs } 603896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Lightxv, cmd_size); 603996c5ddc4Srjs cmd->light = light; 604096c5ddc4Srjs cmd->pname = pname; 604196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 604296c5ddc4Srjs memcpy(variable_data, params, params_size); 604396c5ddc4Srjs} 604496c5ddc4Srjs 604596c5ddc4Srjs 604696c5ddc4Srjs/* LineWidthx: marshalled asynchronously */ 604796c5ddc4Srjsstruct marshal_cmd_LineWidthx 604896c5ddc4Srjs{ 604996c5ddc4Srjs struct marshal_cmd_base cmd_base; 605096c5ddc4Srjs GLfixed width; 605196c5ddc4Srjs}; 605296c5ddc4Srjsuint32_t 605396c5ddc4Srjs_mesa_unmarshal_LineWidthx(struct gl_context *ctx, const struct marshal_cmd_LineWidthx *cmd, const uint64_t *last) 605496c5ddc4Srjs{ 605596c5ddc4Srjs GLfixed width = cmd->width; 605696c5ddc4Srjs CALL_LineWidthx(ctx->CurrentServerDispatch, (width)); 605796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_LineWidthx), 8) / 8); 605896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 605996c5ddc4Srjs return cmd_size; 606096c5ddc4Srjs} 606196c5ddc4Srjsvoid GLAPIENTRY 606296c5ddc4Srjs_mesa_marshal_LineWidthx(GLfixed width) 606396c5ddc4Srjs{ 606496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 606596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_LineWidthx); 606696c5ddc4Srjs struct marshal_cmd_LineWidthx *cmd; 606796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LineWidthx, cmd_size); 606896c5ddc4Srjs cmd->width = width; 606996c5ddc4Srjs} 607096c5ddc4Srjs 607196c5ddc4Srjs 607296c5ddc4Srjs/* LoadMatrixx: marshalled asynchronously */ 607396c5ddc4Srjsstruct marshal_cmd_LoadMatrixx 607496c5ddc4Srjs{ 607596c5ddc4Srjs struct marshal_cmd_base cmd_base; 607696c5ddc4Srjs GLfixed m[16]; 607796c5ddc4Srjs}; 607896c5ddc4Srjsuint32_t 607996c5ddc4Srjs_mesa_unmarshal_LoadMatrixx(struct gl_context *ctx, const struct marshal_cmd_LoadMatrixx *cmd, const uint64_t *last) 608096c5ddc4Srjs{ 608196c5ddc4Srjs const GLfixed * m = cmd->m; 608296c5ddc4Srjs CALL_LoadMatrixx(ctx->CurrentServerDispatch, (m)); 608396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_LoadMatrixx), 8) / 8); 608496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 608596c5ddc4Srjs return cmd_size; 608696c5ddc4Srjs} 608796c5ddc4Srjsvoid GLAPIENTRY 608896c5ddc4Srjs_mesa_marshal_LoadMatrixx(const GLfixed * m) 608996c5ddc4Srjs{ 609096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 609196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_LoadMatrixx); 609296c5ddc4Srjs struct marshal_cmd_LoadMatrixx *cmd; 609396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_LoadMatrixx, cmd_size); 609496c5ddc4Srjs memcpy(cmd->m, m, 16 * sizeof(GLfixed)); 609596c5ddc4Srjs} 609696c5ddc4Srjs 609796c5ddc4Srjs 609896c5ddc4Srjs/* Materialx: marshalled asynchronously */ 609996c5ddc4Srjsstruct marshal_cmd_Materialx 610096c5ddc4Srjs{ 610196c5ddc4Srjs struct marshal_cmd_base cmd_base; 610296c5ddc4Srjs GLenum face; 610396c5ddc4Srjs GLenum pname; 610496c5ddc4Srjs GLfixed param; 610596c5ddc4Srjs}; 610696c5ddc4Srjsuint32_t 610796c5ddc4Srjs_mesa_unmarshal_Materialx(struct gl_context *ctx, const struct marshal_cmd_Materialx *cmd, const uint64_t *last) 610896c5ddc4Srjs{ 610996c5ddc4Srjs GLenum face = cmd->face; 611096c5ddc4Srjs GLenum pname = cmd->pname; 611196c5ddc4Srjs GLfixed param = cmd->param; 611296c5ddc4Srjs CALL_Materialx(ctx->CurrentServerDispatch, (face, pname, param)); 611396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Materialx), 8) / 8); 611496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 611596c5ddc4Srjs return cmd_size; 611696c5ddc4Srjs} 611796c5ddc4Srjsvoid GLAPIENTRY 611896c5ddc4Srjs_mesa_marshal_Materialx(GLenum face, GLenum pname, GLfixed param) 611996c5ddc4Srjs{ 612096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 612196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Materialx); 612296c5ddc4Srjs struct marshal_cmd_Materialx *cmd; 612396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Materialx, cmd_size); 612496c5ddc4Srjs cmd->face = face; 612596c5ddc4Srjs cmd->pname = pname; 612696c5ddc4Srjs cmd->param = param; 612796c5ddc4Srjs} 612896c5ddc4Srjs 612996c5ddc4Srjs 613096c5ddc4Srjs/* Materialxv: marshalled asynchronously */ 613196c5ddc4Srjsstruct marshal_cmd_Materialxv 613296c5ddc4Srjs{ 613396c5ddc4Srjs struct marshal_cmd_base cmd_base; 613496c5ddc4Srjs GLenum face; 613596c5ddc4Srjs GLenum pname; 613696c5ddc4Srjs /* Next safe_mul(_mesa_material_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */ 613796c5ddc4Srjs}; 613896c5ddc4Srjsuint32_t 613996c5ddc4Srjs_mesa_unmarshal_Materialxv(struct gl_context *ctx, const struct marshal_cmd_Materialxv *cmd, const uint64_t *last) 614096c5ddc4Srjs{ 614196c5ddc4Srjs GLenum face = cmd->face; 614296c5ddc4Srjs GLenum pname = cmd->pname; 614396c5ddc4Srjs GLfixed * params; 614496c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 614596c5ddc4Srjs params = (GLfixed *) variable_data; 614696c5ddc4Srjs CALL_Materialxv(ctx->CurrentServerDispatch, (face, pname, params)); 614796c5ddc4Srjs return cmd->cmd_base.cmd_size; 614896c5ddc4Srjs} 614996c5ddc4Srjsvoid GLAPIENTRY 615096c5ddc4Srjs_mesa_marshal_Materialxv(GLenum face, GLenum pname, const GLfixed * params) 615196c5ddc4Srjs{ 615296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 615396c5ddc4Srjs int params_size = safe_mul(_mesa_material_enum_to_count(pname), 1 * sizeof(GLfixed)); 615496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Materialxv) + params_size; 615596c5ddc4Srjs struct marshal_cmd_Materialxv *cmd; 615696c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 615796c5ddc4Srjs _mesa_glthread_finish_before(ctx, "Materialxv"); 615896c5ddc4Srjs CALL_Materialxv(ctx->CurrentServerDispatch, (face, pname, params)); 615996c5ddc4Srjs return; 616096c5ddc4Srjs } 616196c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Materialxv, cmd_size); 616296c5ddc4Srjs cmd->face = face; 616396c5ddc4Srjs cmd->pname = pname; 616496c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 616596c5ddc4Srjs memcpy(variable_data, params, params_size); 616696c5ddc4Srjs} 616796c5ddc4Srjs 616896c5ddc4Srjs 616996c5ddc4Srjs/* MultMatrixx: marshalled asynchronously */ 617096c5ddc4Srjsstruct marshal_cmd_MultMatrixx 617196c5ddc4Srjs{ 617296c5ddc4Srjs struct marshal_cmd_base cmd_base; 617396c5ddc4Srjs GLfixed m[16]; 617496c5ddc4Srjs}; 617596c5ddc4Srjsuint32_t 617696c5ddc4Srjs_mesa_unmarshal_MultMatrixx(struct gl_context *ctx, const struct marshal_cmd_MultMatrixx *cmd, const uint64_t *last) 617796c5ddc4Srjs{ 617896c5ddc4Srjs const GLfixed * m = cmd->m; 617996c5ddc4Srjs CALL_MultMatrixx(ctx->CurrentServerDispatch, (m)); 618096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultMatrixx), 8) / 8); 618196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 618296c5ddc4Srjs return cmd_size; 618396c5ddc4Srjs} 618496c5ddc4Srjsvoid GLAPIENTRY 618596c5ddc4Srjs_mesa_marshal_MultMatrixx(const GLfixed * m) 618696c5ddc4Srjs{ 618796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 618896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultMatrixx); 618996c5ddc4Srjs struct marshal_cmd_MultMatrixx *cmd; 619096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultMatrixx, cmd_size); 619196c5ddc4Srjs memcpy(cmd->m, m, 16 * sizeof(GLfixed)); 619296c5ddc4Srjs} 619396c5ddc4Srjs 619496c5ddc4Srjs 619596c5ddc4Srjs/* MultiTexCoord4x: marshalled asynchronously */ 619696c5ddc4Srjsstruct marshal_cmd_MultiTexCoord4x 619796c5ddc4Srjs{ 619896c5ddc4Srjs struct marshal_cmd_base cmd_base; 619996c5ddc4Srjs GLenum target; 620096c5ddc4Srjs GLfixed s; 620196c5ddc4Srjs GLfixed t; 620296c5ddc4Srjs GLfixed r; 620396c5ddc4Srjs GLfixed q; 620496c5ddc4Srjs}; 620596c5ddc4Srjsuint32_t 620696c5ddc4Srjs_mesa_unmarshal_MultiTexCoord4x(struct gl_context *ctx, const struct marshal_cmd_MultiTexCoord4x *cmd, const uint64_t *last) 620796c5ddc4Srjs{ 620896c5ddc4Srjs GLenum target = cmd->target; 620996c5ddc4Srjs GLfixed s = cmd->s; 621096c5ddc4Srjs GLfixed t = cmd->t; 621196c5ddc4Srjs GLfixed r = cmd->r; 621296c5ddc4Srjs GLfixed q = cmd->q; 621396c5ddc4Srjs CALL_MultiTexCoord4x(ctx->CurrentServerDispatch, (target, s, t, r, q)); 621496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_MultiTexCoord4x), 8) / 8); 621596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 621696c5ddc4Srjs return cmd_size; 621796c5ddc4Srjs} 621896c5ddc4Srjsvoid GLAPIENTRY 621996c5ddc4Srjs_mesa_marshal_MultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) 622096c5ddc4Srjs{ 622196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 622296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_MultiTexCoord4x); 622396c5ddc4Srjs struct marshal_cmd_MultiTexCoord4x *cmd; 622496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_MultiTexCoord4x, cmd_size); 622596c5ddc4Srjs cmd->target = target; 622696c5ddc4Srjs cmd->s = s; 622796c5ddc4Srjs cmd->t = t; 622896c5ddc4Srjs cmd->r = r; 622996c5ddc4Srjs cmd->q = q; 623096c5ddc4Srjs} 623196c5ddc4Srjs 623296c5ddc4Srjs 623396c5ddc4Srjs/* Normal3x: marshalled asynchronously */ 623496c5ddc4Srjsstruct marshal_cmd_Normal3x 623596c5ddc4Srjs{ 623696c5ddc4Srjs struct marshal_cmd_base cmd_base; 623796c5ddc4Srjs GLfixed nx; 623896c5ddc4Srjs GLfixed ny; 623996c5ddc4Srjs GLfixed nz; 624096c5ddc4Srjs}; 624196c5ddc4Srjsuint32_t 624296c5ddc4Srjs_mesa_unmarshal_Normal3x(struct gl_context *ctx, const struct marshal_cmd_Normal3x *cmd, const uint64_t *last) 624396c5ddc4Srjs{ 624496c5ddc4Srjs GLfixed nx = cmd->nx; 624596c5ddc4Srjs GLfixed ny = cmd->ny; 624696c5ddc4Srjs GLfixed nz = cmd->nz; 624796c5ddc4Srjs CALL_Normal3x(ctx->CurrentServerDispatch, (nx, ny, nz)); 624896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Normal3x), 8) / 8); 624996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 625096c5ddc4Srjs return cmd_size; 625196c5ddc4Srjs} 625296c5ddc4Srjsvoid GLAPIENTRY 625396c5ddc4Srjs_mesa_marshal_Normal3x(GLfixed nx, GLfixed ny, GLfixed nz) 625496c5ddc4Srjs{ 625596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 625696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Normal3x); 625796c5ddc4Srjs struct marshal_cmd_Normal3x *cmd; 625896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Normal3x, cmd_size); 625996c5ddc4Srjs cmd->nx = nx; 626096c5ddc4Srjs cmd->ny = ny; 626196c5ddc4Srjs cmd->nz = nz; 626296c5ddc4Srjs} 626396c5ddc4Srjs 626496c5ddc4Srjs 626596c5ddc4Srjs/* Orthox: marshalled asynchronously */ 626696c5ddc4Srjsstruct marshal_cmd_Orthox 626796c5ddc4Srjs{ 626896c5ddc4Srjs struct marshal_cmd_base cmd_base; 626996c5ddc4Srjs GLfixed left; 627096c5ddc4Srjs GLfixed right; 627196c5ddc4Srjs GLfixed bottom; 627296c5ddc4Srjs GLfixed top; 627396c5ddc4Srjs GLfixed zNear; 627496c5ddc4Srjs GLfixed zFar; 627596c5ddc4Srjs}; 627696c5ddc4Srjsuint32_t 627796c5ddc4Srjs_mesa_unmarshal_Orthox(struct gl_context *ctx, const struct marshal_cmd_Orthox *cmd, const uint64_t *last) 627896c5ddc4Srjs{ 627996c5ddc4Srjs GLfixed left = cmd->left; 628096c5ddc4Srjs GLfixed right = cmd->right; 628196c5ddc4Srjs GLfixed bottom = cmd->bottom; 628296c5ddc4Srjs GLfixed top = cmd->top; 628396c5ddc4Srjs GLfixed zNear = cmd->zNear; 628496c5ddc4Srjs GLfixed zFar = cmd->zFar; 628596c5ddc4Srjs CALL_Orthox(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar)); 628696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Orthox), 8) / 8); 628796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 628896c5ddc4Srjs return cmd_size; 628996c5ddc4Srjs} 629096c5ddc4Srjsvoid GLAPIENTRY 629196c5ddc4Srjs_mesa_marshal_Orthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) 629296c5ddc4Srjs{ 629396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 629496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Orthox); 629596c5ddc4Srjs struct marshal_cmd_Orthox *cmd; 629696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Orthox, cmd_size); 629796c5ddc4Srjs cmd->left = left; 629896c5ddc4Srjs cmd->right = right; 629996c5ddc4Srjs cmd->bottom = bottom; 630096c5ddc4Srjs cmd->top = top; 630196c5ddc4Srjs cmd->zNear = zNear; 630296c5ddc4Srjs cmd->zFar = zFar; 630396c5ddc4Srjs} 630496c5ddc4Srjs 630596c5ddc4Srjs 630696c5ddc4Srjs/* PointSizex: marshalled asynchronously */ 630796c5ddc4Srjsstruct marshal_cmd_PointSizex 630896c5ddc4Srjs{ 630996c5ddc4Srjs struct marshal_cmd_base cmd_base; 631096c5ddc4Srjs GLfixed size; 631196c5ddc4Srjs}; 631296c5ddc4Srjsuint32_t 631396c5ddc4Srjs_mesa_unmarshal_PointSizex(struct gl_context *ctx, const struct marshal_cmd_PointSizex *cmd, const uint64_t *last) 631496c5ddc4Srjs{ 631596c5ddc4Srjs GLfixed size = cmd->size; 631696c5ddc4Srjs CALL_PointSizex(ctx->CurrentServerDispatch, (size)); 631796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PointSizex), 8) / 8); 631896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 631996c5ddc4Srjs return cmd_size; 632096c5ddc4Srjs} 632196c5ddc4Srjsvoid GLAPIENTRY 632296c5ddc4Srjs_mesa_marshal_PointSizex(GLfixed size) 632396c5ddc4Srjs{ 632496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 632596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PointSizex); 632696c5ddc4Srjs struct marshal_cmd_PointSizex *cmd; 632796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointSizex, cmd_size); 632896c5ddc4Srjs cmd->size = size; 632996c5ddc4Srjs} 633096c5ddc4Srjs 633196c5ddc4Srjs 633296c5ddc4Srjs/* PolygonOffsetx: marshalled asynchronously */ 633396c5ddc4Srjsstruct marshal_cmd_PolygonOffsetx 633496c5ddc4Srjs{ 633596c5ddc4Srjs struct marshal_cmd_base cmd_base; 633696c5ddc4Srjs GLfixed factor; 633796c5ddc4Srjs GLfixed units; 633896c5ddc4Srjs}; 633996c5ddc4Srjsuint32_t 634096c5ddc4Srjs_mesa_unmarshal_PolygonOffsetx(struct gl_context *ctx, const struct marshal_cmd_PolygonOffsetx *cmd, const uint64_t *last) 634196c5ddc4Srjs{ 634296c5ddc4Srjs GLfixed factor = cmd->factor; 634396c5ddc4Srjs GLfixed units = cmd->units; 634496c5ddc4Srjs CALL_PolygonOffsetx(ctx->CurrentServerDispatch, (factor, units)); 634596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PolygonOffsetx), 8) / 8); 634696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 634796c5ddc4Srjs return cmd_size; 634896c5ddc4Srjs} 634996c5ddc4Srjsvoid GLAPIENTRY 635096c5ddc4Srjs_mesa_marshal_PolygonOffsetx(GLfixed factor, GLfixed units) 635196c5ddc4Srjs{ 635296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 635396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PolygonOffsetx); 635496c5ddc4Srjs struct marshal_cmd_PolygonOffsetx *cmd; 635596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PolygonOffsetx, cmd_size); 635696c5ddc4Srjs cmd->factor = factor; 635796c5ddc4Srjs cmd->units = units; 635896c5ddc4Srjs} 635996c5ddc4Srjs 636096c5ddc4Srjs 636196c5ddc4Srjs/* Rotatex: marshalled asynchronously */ 636296c5ddc4Srjsstruct marshal_cmd_Rotatex 636396c5ddc4Srjs{ 636496c5ddc4Srjs struct marshal_cmd_base cmd_base; 636596c5ddc4Srjs GLfixed angle; 636696c5ddc4Srjs GLfixed x; 636796c5ddc4Srjs GLfixed y; 636896c5ddc4Srjs GLfixed z; 636996c5ddc4Srjs}; 637096c5ddc4Srjsuint32_t 637196c5ddc4Srjs_mesa_unmarshal_Rotatex(struct gl_context *ctx, const struct marshal_cmd_Rotatex *cmd, const uint64_t *last) 637296c5ddc4Srjs{ 637396c5ddc4Srjs GLfixed angle = cmd->angle; 637496c5ddc4Srjs GLfixed x = cmd->x; 637596c5ddc4Srjs GLfixed y = cmd->y; 637696c5ddc4Srjs GLfixed z = cmd->z; 637796c5ddc4Srjs CALL_Rotatex(ctx->CurrentServerDispatch, (angle, x, y, z)); 637896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Rotatex), 8) / 8); 637996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 638096c5ddc4Srjs return cmd_size; 638196c5ddc4Srjs} 638296c5ddc4Srjsvoid GLAPIENTRY 638396c5ddc4Srjs_mesa_marshal_Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) 638496c5ddc4Srjs{ 638596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 638696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Rotatex); 638796c5ddc4Srjs struct marshal_cmd_Rotatex *cmd; 638896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Rotatex, cmd_size); 638996c5ddc4Srjs cmd->angle = angle; 639096c5ddc4Srjs cmd->x = x; 639196c5ddc4Srjs cmd->y = y; 639296c5ddc4Srjs cmd->z = z; 639396c5ddc4Srjs} 639496c5ddc4Srjs 639596c5ddc4Srjs 639696c5ddc4Srjs/* SampleCoveragex: marshalled asynchronously */ 639796c5ddc4Srjsstruct marshal_cmd_SampleCoveragex 639896c5ddc4Srjs{ 639996c5ddc4Srjs struct marshal_cmd_base cmd_base; 640096c5ddc4Srjs GLboolean invert; 640196c5ddc4Srjs GLclampx value; 640296c5ddc4Srjs}; 640396c5ddc4Srjsuint32_t 640496c5ddc4Srjs_mesa_unmarshal_SampleCoveragex(struct gl_context *ctx, const struct marshal_cmd_SampleCoveragex *cmd, const uint64_t *last) 640596c5ddc4Srjs{ 640696c5ddc4Srjs GLclampx value = cmd->value; 640796c5ddc4Srjs GLboolean invert = cmd->invert; 640896c5ddc4Srjs CALL_SampleCoveragex(ctx->CurrentServerDispatch, (value, invert)); 640996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_SampleCoveragex), 8) / 8); 641096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 641196c5ddc4Srjs return cmd_size; 641296c5ddc4Srjs} 641396c5ddc4Srjsvoid GLAPIENTRY 641496c5ddc4Srjs_mesa_marshal_SampleCoveragex(GLclampx value, GLboolean invert) 641596c5ddc4Srjs{ 641696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 641796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_SampleCoveragex); 641896c5ddc4Srjs struct marshal_cmd_SampleCoveragex *cmd; 641996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_SampleCoveragex, cmd_size); 642096c5ddc4Srjs cmd->value = value; 642196c5ddc4Srjs cmd->invert = invert; 642296c5ddc4Srjs} 642396c5ddc4Srjs 642496c5ddc4Srjs 642596c5ddc4Srjs/* Scalex: marshalled asynchronously */ 642696c5ddc4Srjsstruct marshal_cmd_Scalex 642796c5ddc4Srjs{ 642896c5ddc4Srjs struct marshal_cmd_base cmd_base; 642996c5ddc4Srjs GLfixed x; 643096c5ddc4Srjs GLfixed y; 643196c5ddc4Srjs GLfixed z; 643296c5ddc4Srjs}; 643396c5ddc4Srjsuint32_t 643496c5ddc4Srjs_mesa_unmarshal_Scalex(struct gl_context *ctx, const struct marshal_cmd_Scalex *cmd, const uint64_t *last) 643596c5ddc4Srjs{ 643696c5ddc4Srjs GLfixed x = cmd->x; 643796c5ddc4Srjs GLfixed y = cmd->y; 643896c5ddc4Srjs GLfixed z = cmd->z; 643996c5ddc4Srjs CALL_Scalex(ctx->CurrentServerDispatch, (x, y, z)); 644096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Scalex), 8) / 8); 644196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 644296c5ddc4Srjs return cmd_size; 644396c5ddc4Srjs} 644496c5ddc4Srjsvoid GLAPIENTRY 644596c5ddc4Srjs_mesa_marshal_Scalex(GLfixed x, GLfixed y, GLfixed z) 644696c5ddc4Srjs{ 644796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 644896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Scalex); 644996c5ddc4Srjs struct marshal_cmd_Scalex *cmd; 645096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Scalex, cmd_size); 645196c5ddc4Srjs cmd->x = x; 645296c5ddc4Srjs cmd->y = y; 645396c5ddc4Srjs cmd->z = z; 645496c5ddc4Srjs} 645596c5ddc4Srjs 645696c5ddc4Srjs 645796c5ddc4Srjs/* TexEnvx: marshalled asynchronously */ 645896c5ddc4Srjsstruct marshal_cmd_TexEnvx 645996c5ddc4Srjs{ 646096c5ddc4Srjs struct marshal_cmd_base cmd_base; 646196c5ddc4Srjs GLenum target; 646296c5ddc4Srjs GLenum pname; 646396c5ddc4Srjs GLfixed param; 646496c5ddc4Srjs}; 646596c5ddc4Srjsuint32_t 646696c5ddc4Srjs_mesa_unmarshal_TexEnvx(struct gl_context *ctx, const struct marshal_cmd_TexEnvx *cmd, const uint64_t *last) 646796c5ddc4Srjs{ 646896c5ddc4Srjs GLenum target = cmd->target; 646996c5ddc4Srjs GLenum pname = cmd->pname; 647096c5ddc4Srjs GLfixed param = cmd->param; 647196c5ddc4Srjs CALL_TexEnvx(ctx->CurrentServerDispatch, (target, pname, param)); 647296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexEnvx), 8) / 8); 647396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 647496c5ddc4Srjs return cmd_size; 647596c5ddc4Srjs} 647696c5ddc4Srjsvoid GLAPIENTRY 647796c5ddc4Srjs_mesa_marshal_TexEnvx(GLenum target, GLenum pname, GLfixed param) 647896c5ddc4Srjs{ 647996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 648096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexEnvx); 648196c5ddc4Srjs struct marshal_cmd_TexEnvx *cmd; 648296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexEnvx, cmd_size); 648396c5ddc4Srjs cmd->target = target; 648496c5ddc4Srjs cmd->pname = pname; 648596c5ddc4Srjs cmd->param = param; 648696c5ddc4Srjs} 648796c5ddc4Srjs 648896c5ddc4Srjs 648996c5ddc4Srjs/* TexEnvxv: marshalled asynchronously */ 649096c5ddc4Srjsstruct marshal_cmd_TexEnvxv 649196c5ddc4Srjs{ 649296c5ddc4Srjs struct marshal_cmd_base cmd_base; 649396c5ddc4Srjs GLenum target; 649496c5ddc4Srjs GLenum pname; 649596c5ddc4Srjs /* Next safe_mul(_mesa_texenv_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */ 649696c5ddc4Srjs}; 649796c5ddc4Srjsuint32_t 649896c5ddc4Srjs_mesa_unmarshal_TexEnvxv(struct gl_context *ctx, const struct marshal_cmd_TexEnvxv *cmd, const uint64_t *last) 649996c5ddc4Srjs{ 650096c5ddc4Srjs GLenum target = cmd->target; 650196c5ddc4Srjs GLenum pname = cmd->pname; 650296c5ddc4Srjs GLfixed * params; 650396c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 650496c5ddc4Srjs params = (GLfixed *) variable_data; 650596c5ddc4Srjs CALL_TexEnvxv(ctx->CurrentServerDispatch, (target, pname, params)); 650696c5ddc4Srjs return cmd->cmd_base.cmd_size; 650796c5ddc4Srjs} 650896c5ddc4Srjsvoid GLAPIENTRY 650996c5ddc4Srjs_mesa_marshal_TexEnvxv(GLenum target, GLenum pname, const GLfixed * params) 651096c5ddc4Srjs{ 651196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 651296c5ddc4Srjs int params_size = safe_mul(_mesa_texenv_enum_to_count(pname), 1 * sizeof(GLfixed)); 651396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexEnvxv) + params_size; 651496c5ddc4Srjs struct marshal_cmd_TexEnvxv *cmd; 651596c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 651696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TexEnvxv"); 651796c5ddc4Srjs CALL_TexEnvxv(ctx->CurrentServerDispatch, (target, pname, params)); 651896c5ddc4Srjs return; 651996c5ddc4Srjs } 652096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexEnvxv, cmd_size); 652196c5ddc4Srjs cmd->target = target; 652296c5ddc4Srjs cmd->pname = pname; 652396c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 652496c5ddc4Srjs memcpy(variable_data, params, params_size); 652596c5ddc4Srjs} 652696c5ddc4Srjs 652796c5ddc4Srjs 652896c5ddc4Srjs/* TexParameterx: marshalled asynchronously */ 652996c5ddc4Srjsstruct marshal_cmd_TexParameterx 653096c5ddc4Srjs{ 653196c5ddc4Srjs struct marshal_cmd_base cmd_base; 653296c5ddc4Srjs GLenum target; 653396c5ddc4Srjs GLenum pname; 653496c5ddc4Srjs GLfixed param; 653596c5ddc4Srjs}; 653696c5ddc4Srjsuint32_t 653796c5ddc4Srjs_mesa_unmarshal_TexParameterx(struct gl_context *ctx, const struct marshal_cmd_TexParameterx *cmd, const uint64_t *last) 653896c5ddc4Srjs{ 653996c5ddc4Srjs GLenum target = cmd->target; 654096c5ddc4Srjs GLenum pname = cmd->pname; 654196c5ddc4Srjs GLfixed param = cmd->param; 654296c5ddc4Srjs CALL_TexParameterx(ctx->CurrentServerDispatch, (target, pname, param)); 654396c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexParameterx), 8) / 8); 654496c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 654596c5ddc4Srjs return cmd_size; 654696c5ddc4Srjs} 654796c5ddc4Srjsvoid GLAPIENTRY 654896c5ddc4Srjs_mesa_marshal_TexParameterx(GLenum target, GLenum pname, GLfixed param) 654996c5ddc4Srjs{ 655096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 655196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexParameterx); 655296c5ddc4Srjs struct marshal_cmd_TexParameterx *cmd; 655396c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterx, cmd_size); 655496c5ddc4Srjs cmd->target = target; 655596c5ddc4Srjs cmd->pname = pname; 655696c5ddc4Srjs cmd->param = param; 655796c5ddc4Srjs} 655896c5ddc4Srjs 655996c5ddc4Srjs 656096c5ddc4Srjs/* Translatex: marshalled asynchronously */ 656196c5ddc4Srjsstruct marshal_cmd_Translatex 656296c5ddc4Srjs{ 656396c5ddc4Srjs struct marshal_cmd_base cmd_base; 656496c5ddc4Srjs GLfixed x; 656596c5ddc4Srjs GLfixed y; 656696c5ddc4Srjs GLfixed z; 656796c5ddc4Srjs}; 656896c5ddc4Srjsuint32_t 656996c5ddc4Srjs_mesa_unmarshal_Translatex(struct gl_context *ctx, const struct marshal_cmd_Translatex *cmd, const uint64_t *last) 657096c5ddc4Srjs{ 657196c5ddc4Srjs GLfixed x = cmd->x; 657296c5ddc4Srjs GLfixed y = cmd->y; 657396c5ddc4Srjs GLfixed z = cmd->z; 657496c5ddc4Srjs CALL_Translatex(ctx->CurrentServerDispatch, (x, y, z)); 657596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Translatex), 8) / 8); 657696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 657796c5ddc4Srjs return cmd_size; 657896c5ddc4Srjs} 657996c5ddc4Srjsvoid GLAPIENTRY 658096c5ddc4Srjs_mesa_marshal_Translatex(GLfixed x, GLfixed y, GLfixed z) 658196c5ddc4Srjs{ 658296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 658396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Translatex); 658496c5ddc4Srjs struct marshal_cmd_Translatex *cmd; 658596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Translatex, cmd_size); 658696c5ddc4Srjs cmd->x = x; 658796c5ddc4Srjs cmd->y = y; 658896c5ddc4Srjs cmd->z = z; 658996c5ddc4Srjs} 659096c5ddc4Srjs 659196c5ddc4Srjs 659296c5ddc4Srjs/* ClipPlanex: marshalled asynchronously */ 659396c5ddc4Srjsstruct marshal_cmd_ClipPlanex 659496c5ddc4Srjs{ 659596c5ddc4Srjs struct marshal_cmd_base cmd_base; 659696c5ddc4Srjs GLenum plane; 659796c5ddc4Srjs GLfixed equation[4]; 659896c5ddc4Srjs}; 659996c5ddc4Srjsuint32_t 660096c5ddc4Srjs_mesa_unmarshal_ClipPlanex(struct gl_context *ctx, const struct marshal_cmd_ClipPlanex *cmd, const uint64_t *last) 660196c5ddc4Srjs{ 660296c5ddc4Srjs GLenum plane = cmd->plane; 660396c5ddc4Srjs const GLfixed * equation = cmd->equation; 660496c5ddc4Srjs CALL_ClipPlanex(ctx->CurrentServerDispatch, (plane, equation)); 660596c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClipPlanex), 8) / 8); 660696c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 660796c5ddc4Srjs return cmd_size; 660896c5ddc4Srjs} 660996c5ddc4Srjsvoid GLAPIENTRY 661096c5ddc4Srjs_mesa_marshal_ClipPlanex(GLenum plane, const GLfixed * equation) 661196c5ddc4Srjs{ 661296c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 661396c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClipPlanex); 661496c5ddc4Srjs struct marshal_cmd_ClipPlanex *cmd; 661596c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClipPlanex, cmd_size); 661696c5ddc4Srjs cmd->plane = plane; 661796c5ddc4Srjs memcpy(cmd->equation, equation, 4 * sizeof(GLfixed)); 661896c5ddc4Srjs} 661996c5ddc4Srjs 662096c5ddc4Srjs 662196c5ddc4Srjs/* GetClipPlanex: marshalled synchronously */ 662296c5ddc4Srjsvoid GLAPIENTRY 662396c5ddc4Srjs_mesa_marshal_GetClipPlanex(GLenum plane, GLfixed * equation) 662496c5ddc4Srjs{ 662596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 662696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetClipPlanex"); 662796c5ddc4Srjs CALL_GetClipPlanex(ctx->CurrentServerDispatch, (plane, equation)); 662896c5ddc4Srjs} 662996c5ddc4Srjs 663096c5ddc4Srjs 663196c5ddc4Srjs/* GetFixedv: marshalled synchronously */ 663296c5ddc4Srjsvoid GLAPIENTRY 663396c5ddc4Srjs_mesa_marshal_GetFixedv(GLenum pname, GLfixed * params) 663496c5ddc4Srjs{ 663596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 663696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetFixedv"); 663796c5ddc4Srjs CALL_GetFixedv(ctx->CurrentServerDispatch, (pname, params)); 663896c5ddc4Srjs} 663996c5ddc4Srjs 664096c5ddc4Srjs 664196c5ddc4Srjs/* GetLightxv: marshalled synchronously */ 664296c5ddc4Srjsvoid GLAPIENTRY 664396c5ddc4Srjs_mesa_marshal_GetLightxv(GLenum light, GLenum pname, GLfixed * params) 664496c5ddc4Srjs{ 664596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 664696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetLightxv"); 664796c5ddc4Srjs CALL_GetLightxv(ctx->CurrentServerDispatch, (light, pname, params)); 664896c5ddc4Srjs} 664996c5ddc4Srjs 665096c5ddc4Srjs 665196c5ddc4Srjs/* GetMaterialxv: marshalled synchronously */ 665296c5ddc4Srjsvoid GLAPIENTRY 665396c5ddc4Srjs_mesa_marshal_GetMaterialxv(GLenum face, GLenum pname, GLfixed * params) 665496c5ddc4Srjs{ 665596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 665696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetMaterialxv"); 665796c5ddc4Srjs CALL_GetMaterialxv(ctx->CurrentServerDispatch, (face, pname, params)); 665896c5ddc4Srjs} 665996c5ddc4Srjs 666096c5ddc4Srjs 666196c5ddc4Srjs/* GetTexEnvxv: marshalled synchronously */ 666296c5ddc4Srjsvoid GLAPIENTRY 666396c5ddc4Srjs_mesa_marshal_GetTexEnvxv(GLenum target, GLenum pname, GLfixed * params) 666496c5ddc4Srjs{ 666596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 666696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTexEnvxv"); 666796c5ddc4Srjs CALL_GetTexEnvxv(ctx->CurrentServerDispatch, (target, pname, params)); 666896c5ddc4Srjs} 666996c5ddc4Srjs 667096c5ddc4Srjs 667196c5ddc4Srjs/* GetTexParameterxv: marshalled synchronously */ 667296c5ddc4Srjsvoid GLAPIENTRY 667396c5ddc4Srjs_mesa_marshal_GetTexParameterxv(GLenum target, GLenum pname, GLfixed * params) 667496c5ddc4Srjs{ 667596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 667696c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTexParameterxv"); 667796c5ddc4Srjs CALL_GetTexParameterxv(ctx->CurrentServerDispatch, (target, pname, params)); 667896c5ddc4Srjs} 667996c5ddc4Srjs 668096c5ddc4Srjs 668196c5ddc4Srjs/* PointParameterx: marshalled asynchronously */ 668296c5ddc4Srjsstruct marshal_cmd_PointParameterx 668396c5ddc4Srjs{ 668496c5ddc4Srjs struct marshal_cmd_base cmd_base; 668596c5ddc4Srjs GLenum pname; 668696c5ddc4Srjs GLfixed param; 668796c5ddc4Srjs}; 668896c5ddc4Srjsuint32_t 668996c5ddc4Srjs_mesa_unmarshal_PointParameterx(struct gl_context *ctx, const struct marshal_cmd_PointParameterx *cmd, const uint64_t *last) 669096c5ddc4Srjs{ 669196c5ddc4Srjs GLenum pname = cmd->pname; 669296c5ddc4Srjs GLfixed param = cmd->param; 669396c5ddc4Srjs CALL_PointParameterx(ctx->CurrentServerDispatch, (pname, param)); 669496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PointParameterx), 8) / 8); 669596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 669696c5ddc4Srjs return cmd_size; 669796c5ddc4Srjs} 669896c5ddc4Srjsvoid GLAPIENTRY 669996c5ddc4Srjs_mesa_marshal_PointParameterx(GLenum pname, GLfixed param) 670096c5ddc4Srjs{ 670196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 670296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PointParameterx); 670396c5ddc4Srjs struct marshal_cmd_PointParameterx *cmd; 670496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointParameterx, cmd_size); 670596c5ddc4Srjs cmd->pname = pname; 670696c5ddc4Srjs cmd->param = param; 670796c5ddc4Srjs} 670896c5ddc4Srjs 670996c5ddc4Srjs 671096c5ddc4Srjs/* PointParameterxv: marshalled asynchronously */ 671196c5ddc4Srjsstruct marshal_cmd_PointParameterxv 671296c5ddc4Srjs{ 671396c5ddc4Srjs struct marshal_cmd_base cmd_base; 671496c5ddc4Srjs GLenum pname; 671596c5ddc4Srjs /* Next safe_mul(_mesa_point_param_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[_mesa_point_param_enum_to_count(pname)] */ 671696c5ddc4Srjs}; 671796c5ddc4Srjsuint32_t 671896c5ddc4Srjs_mesa_unmarshal_PointParameterxv(struct gl_context *ctx, const struct marshal_cmd_PointParameterxv *cmd, const uint64_t *last) 671996c5ddc4Srjs{ 672096c5ddc4Srjs GLenum pname = cmd->pname; 672196c5ddc4Srjs GLfixed * params; 672296c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 672396c5ddc4Srjs params = (GLfixed *) variable_data; 672496c5ddc4Srjs CALL_PointParameterxv(ctx->CurrentServerDispatch, (pname, params)); 672596c5ddc4Srjs return cmd->cmd_base.cmd_size; 672696c5ddc4Srjs} 672796c5ddc4Srjsvoid GLAPIENTRY 672896c5ddc4Srjs_mesa_marshal_PointParameterxv(GLenum pname, const GLfixed * params) 672996c5ddc4Srjs{ 673096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 673196c5ddc4Srjs int params_size = safe_mul(_mesa_point_param_enum_to_count(pname), 1 * sizeof(GLfixed)); 673296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PointParameterxv) + params_size; 673396c5ddc4Srjs struct marshal_cmd_PointParameterxv *cmd; 673496c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 673596c5ddc4Srjs _mesa_glthread_finish_before(ctx, "PointParameterxv"); 673696c5ddc4Srjs CALL_PointParameterxv(ctx->CurrentServerDispatch, (pname, params)); 673796c5ddc4Srjs return; 673896c5ddc4Srjs } 673996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointParameterxv, cmd_size); 674096c5ddc4Srjs cmd->pname = pname; 674196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 674296c5ddc4Srjs memcpy(variable_data, params, params_size); 674396c5ddc4Srjs} 674496c5ddc4Srjs 674596c5ddc4Srjs 674696c5ddc4Srjs/* TexParameterxv: marshalled asynchronously */ 674796c5ddc4Srjsstruct marshal_cmd_TexParameterxv 674896c5ddc4Srjs{ 674996c5ddc4Srjs struct marshal_cmd_base cmd_base; 675096c5ddc4Srjs GLenum target; 675196c5ddc4Srjs GLenum pname; 675296c5ddc4Srjs /* Next safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */ 675396c5ddc4Srjs}; 675496c5ddc4Srjsuint32_t 675596c5ddc4Srjs_mesa_unmarshal_TexParameterxv(struct gl_context *ctx, const struct marshal_cmd_TexParameterxv *cmd, const uint64_t *last) 675696c5ddc4Srjs{ 675796c5ddc4Srjs GLenum target = cmd->target; 675896c5ddc4Srjs GLenum pname = cmd->pname; 675996c5ddc4Srjs GLfixed * params; 676096c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 676196c5ddc4Srjs params = (GLfixed *) variable_data; 676296c5ddc4Srjs CALL_TexParameterxv(ctx->CurrentServerDispatch, (target, pname, params)); 676396c5ddc4Srjs return cmd->cmd_base.cmd_size; 676496c5ddc4Srjs} 676596c5ddc4Srjsvoid GLAPIENTRY 676696c5ddc4Srjs_mesa_marshal_TexParameterxv(GLenum target, GLenum pname, const GLfixed * params) 676796c5ddc4Srjs{ 676896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 676996c5ddc4Srjs int params_size = safe_mul(_mesa_tex_param_enum_to_count(pname), 1 * sizeof(GLfixed)); 677096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexParameterxv) + params_size; 677196c5ddc4Srjs struct marshal_cmd_TexParameterxv *cmd; 677296c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 677396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TexParameterxv"); 677496c5ddc4Srjs CALL_TexParameterxv(ctx->CurrentServerDispatch, (target, pname, params)); 677596c5ddc4Srjs return; 677696c5ddc4Srjs } 677796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexParameterxv, cmd_size); 677896c5ddc4Srjs cmd->target = target; 677996c5ddc4Srjs cmd->pname = pname; 678096c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 678196c5ddc4Srjs memcpy(variable_data, params, params_size); 678296c5ddc4Srjs} 678396c5ddc4Srjs 678496c5ddc4Srjs 678596c5ddc4Srjs/* GetTexGenxvOES: marshalled synchronously */ 678696c5ddc4Srjsvoid GLAPIENTRY 678796c5ddc4Srjs_mesa_marshal_GetTexGenxvOES(GLenum coord, GLenum pname, GLfixed * params) 678896c5ddc4Srjs{ 678996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 679096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetTexGenxvOES"); 679196c5ddc4Srjs CALL_GetTexGenxvOES(ctx->CurrentServerDispatch, (coord, pname, params)); 679296c5ddc4Srjs} 679396c5ddc4Srjs 679496c5ddc4Srjs 679596c5ddc4Srjs/* TexGenxOES: marshalled asynchronously */ 679696c5ddc4Srjsstruct marshal_cmd_TexGenxOES 679796c5ddc4Srjs{ 679896c5ddc4Srjs struct marshal_cmd_base cmd_base; 679996c5ddc4Srjs GLenum coord; 680096c5ddc4Srjs GLenum pname; 680196c5ddc4Srjs GLint param; 680296c5ddc4Srjs}; 680396c5ddc4Srjsuint32_t 680496c5ddc4Srjs_mesa_unmarshal_TexGenxOES(struct gl_context *ctx, const struct marshal_cmd_TexGenxOES *cmd, const uint64_t *last) 680596c5ddc4Srjs{ 680696c5ddc4Srjs GLenum coord = cmd->coord; 680796c5ddc4Srjs GLenum pname = cmd->pname; 680896c5ddc4Srjs GLint param = cmd->param; 680996c5ddc4Srjs CALL_TexGenxOES(ctx->CurrentServerDispatch, (coord, pname, param)); 681096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_TexGenxOES), 8) / 8); 681196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 681296c5ddc4Srjs return cmd_size; 681396c5ddc4Srjs} 681496c5ddc4Srjsvoid GLAPIENTRY 681596c5ddc4Srjs_mesa_marshal_TexGenxOES(GLenum coord, GLenum pname, GLint param) 681696c5ddc4Srjs{ 681796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 681896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexGenxOES); 681996c5ddc4Srjs struct marshal_cmd_TexGenxOES *cmd; 682096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexGenxOES, cmd_size); 682196c5ddc4Srjs cmd->coord = coord; 682296c5ddc4Srjs cmd->pname = pname; 682396c5ddc4Srjs cmd->param = param; 682496c5ddc4Srjs} 682596c5ddc4Srjs 682696c5ddc4Srjs 682796c5ddc4Srjs/* TexGenxvOES: marshalled asynchronously */ 682896c5ddc4Srjsstruct marshal_cmd_TexGenxvOES 682996c5ddc4Srjs{ 683096c5ddc4Srjs struct marshal_cmd_base cmd_base; 683196c5ddc4Srjs GLenum coord; 683296c5ddc4Srjs GLenum pname; 683396c5ddc4Srjs /* Next safe_mul(_mesa_texgen_enum_to_count(pname), 1 * sizeof(GLfixed)) bytes are GLfixed params[None] */ 683496c5ddc4Srjs}; 683596c5ddc4Srjsuint32_t 683696c5ddc4Srjs_mesa_unmarshal_TexGenxvOES(struct gl_context *ctx, const struct marshal_cmd_TexGenxvOES *cmd, const uint64_t *last) 683796c5ddc4Srjs{ 683896c5ddc4Srjs GLenum coord = cmd->coord; 683996c5ddc4Srjs GLenum pname = cmd->pname; 684096c5ddc4Srjs GLfixed * params; 684196c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 684296c5ddc4Srjs params = (GLfixed *) variable_data; 684396c5ddc4Srjs CALL_TexGenxvOES(ctx->CurrentServerDispatch, (coord, pname, params)); 684496c5ddc4Srjs return cmd->cmd_base.cmd_size; 684596c5ddc4Srjs} 684696c5ddc4Srjsvoid GLAPIENTRY 684796c5ddc4Srjs_mesa_marshal_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed * params) 684896c5ddc4Srjs{ 684996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 685096c5ddc4Srjs int params_size = safe_mul(_mesa_texgen_enum_to_count(pname), 1 * sizeof(GLfixed)); 685196c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_TexGenxvOES) + params_size; 685296c5ddc4Srjs struct marshal_cmd_TexGenxvOES *cmd; 685396c5ddc4Srjs if (unlikely(params_size < 0 || (params_size > 0 && !params) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 685496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "TexGenxvOES"); 685596c5ddc4Srjs CALL_TexGenxvOES(ctx->CurrentServerDispatch, (coord, pname, params)); 685696c5ddc4Srjs return; 685796c5ddc4Srjs } 685896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_TexGenxvOES, cmd_size); 685996c5ddc4Srjs cmd->coord = coord; 686096c5ddc4Srjs cmd->pname = pname; 686196c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 686296c5ddc4Srjs memcpy(variable_data, params, params_size); 686396c5ddc4Srjs} 686496c5ddc4Srjs 686596c5ddc4Srjs 686696c5ddc4Srjs/* ClipPlanef: marshalled asynchronously */ 686796c5ddc4Srjsstruct marshal_cmd_ClipPlanef 686896c5ddc4Srjs{ 686996c5ddc4Srjs struct marshal_cmd_base cmd_base; 687096c5ddc4Srjs GLenum plane; 687196c5ddc4Srjs GLfloat equation[4]; 687296c5ddc4Srjs}; 687396c5ddc4Srjsuint32_t 687496c5ddc4Srjs_mesa_unmarshal_ClipPlanef(struct gl_context *ctx, const struct marshal_cmd_ClipPlanef *cmd, const uint64_t *last) 687596c5ddc4Srjs{ 687696c5ddc4Srjs GLenum plane = cmd->plane; 687796c5ddc4Srjs const GLfloat * equation = cmd->equation; 687896c5ddc4Srjs CALL_ClipPlanef(ctx->CurrentServerDispatch, (plane, equation)); 687996c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_ClipPlanef), 8) / 8); 688096c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 688196c5ddc4Srjs return cmd_size; 688296c5ddc4Srjs} 688396c5ddc4Srjsvoid GLAPIENTRY 688496c5ddc4Srjs_mesa_marshal_ClipPlanef(GLenum plane, const GLfloat * equation) 688596c5ddc4Srjs{ 688696c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 688796c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_ClipPlanef); 688896c5ddc4Srjs struct marshal_cmd_ClipPlanef *cmd; 688996c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_ClipPlanef, cmd_size); 689096c5ddc4Srjs cmd->plane = plane; 689196c5ddc4Srjs memcpy(cmd->equation, equation, 4 * sizeof(GLfloat)); 689296c5ddc4Srjs} 689396c5ddc4Srjs 689496c5ddc4Srjs 689596c5ddc4Srjs/* GetClipPlanef: marshalled synchronously */ 689696c5ddc4Srjsvoid GLAPIENTRY 689796c5ddc4Srjs_mesa_marshal_GetClipPlanef(GLenum plane, GLfloat * equation) 689896c5ddc4Srjs{ 689996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 690096c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetClipPlanef"); 690196c5ddc4Srjs CALL_GetClipPlanef(ctx->CurrentServerDispatch, (plane, equation)); 690296c5ddc4Srjs} 690396c5ddc4Srjs 690496c5ddc4Srjs 690596c5ddc4Srjs/* Frustumf: marshalled asynchronously */ 690696c5ddc4Srjsstruct marshal_cmd_Frustumf 690796c5ddc4Srjs{ 690896c5ddc4Srjs struct marshal_cmd_base cmd_base; 690996c5ddc4Srjs GLfloat left; 691096c5ddc4Srjs GLfloat right; 691196c5ddc4Srjs GLfloat bottom; 691296c5ddc4Srjs GLfloat top; 691396c5ddc4Srjs GLfloat zNear; 691496c5ddc4Srjs GLfloat zFar; 691596c5ddc4Srjs}; 691696c5ddc4Srjsuint32_t 691796c5ddc4Srjs_mesa_unmarshal_Frustumf(struct gl_context *ctx, const struct marshal_cmd_Frustumf *cmd, const uint64_t *last) 691896c5ddc4Srjs{ 691996c5ddc4Srjs GLfloat left = cmd->left; 692096c5ddc4Srjs GLfloat right = cmd->right; 692196c5ddc4Srjs GLfloat bottom = cmd->bottom; 692296c5ddc4Srjs GLfloat top = cmd->top; 692396c5ddc4Srjs GLfloat zNear = cmd->zNear; 692496c5ddc4Srjs GLfloat zFar = cmd->zFar; 692596c5ddc4Srjs CALL_Frustumf(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar)); 692696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Frustumf), 8) / 8); 692796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 692896c5ddc4Srjs return cmd_size; 692996c5ddc4Srjs} 693096c5ddc4Srjsvoid GLAPIENTRY 693196c5ddc4Srjs_mesa_marshal_Frustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) 693296c5ddc4Srjs{ 693396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 693496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Frustumf); 693596c5ddc4Srjs struct marshal_cmd_Frustumf *cmd; 693696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Frustumf, cmd_size); 693796c5ddc4Srjs cmd->left = left; 693896c5ddc4Srjs cmd->right = right; 693996c5ddc4Srjs cmd->bottom = bottom; 694096c5ddc4Srjs cmd->top = top; 694196c5ddc4Srjs cmd->zNear = zNear; 694296c5ddc4Srjs cmd->zFar = zFar; 694396c5ddc4Srjs} 694496c5ddc4Srjs 694596c5ddc4Srjs 694696c5ddc4Srjs/* Orthof: marshalled asynchronously */ 694796c5ddc4Srjsstruct marshal_cmd_Orthof 694896c5ddc4Srjs{ 694996c5ddc4Srjs struct marshal_cmd_base cmd_base; 695096c5ddc4Srjs GLfloat left; 695196c5ddc4Srjs GLfloat right; 695296c5ddc4Srjs GLfloat bottom; 695396c5ddc4Srjs GLfloat top; 695496c5ddc4Srjs GLfloat zNear; 695596c5ddc4Srjs GLfloat zFar; 695696c5ddc4Srjs}; 695796c5ddc4Srjsuint32_t 695896c5ddc4Srjs_mesa_unmarshal_Orthof(struct gl_context *ctx, const struct marshal_cmd_Orthof *cmd, const uint64_t *last) 695996c5ddc4Srjs{ 696096c5ddc4Srjs GLfloat left = cmd->left; 696196c5ddc4Srjs GLfloat right = cmd->right; 696296c5ddc4Srjs GLfloat bottom = cmd->bottom; 696396c5ddc4Srjs GLfloat top = cmd->top; 696496c5ddc4Srjs GLfloat zNear = cmd->zNear; 696596c5ddc4Srjs GLfloat zFar = cmd->zFar; 696696c5ddc4Srjs CALL_Orthof(ctx->CurrentServerDispatch, (left, right, bottom, top, zNear, zFar)); 696796c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_Orthof), 8) / 8); 696896c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 696996c5ddc4Srjs return cmd_size; 697096c5ddc4Srjs} 697196c5ddc4Srjsvoid GLAPIENTRY 697296c5ddc4Srjs_mesa_marshal_Orthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) 697396c5ddc4Srjs{ 697496c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 697596c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_Orthof); 697696c5ddc4Srjs struct marshal_cmd_Orthof *cmd; 697796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Orthof, cmd_size); 697896c5ddc4Srjs cmd->left = left; 697996c5ddc4Srjs cmd->right = right; 698096c5ddc4Srjs cmd->bottom = bottom; 698196c5ddc4Srjs cmd->top = top; 698296c5ddc4Srjs cmd->zNear = zNear; 698396c5ddc4Srjs cmd->zFar = zFar; 698496c5ddc4Srjs} 698596c5ddc4Srjs 698696c5ddc4Srjs 698796c5ddc4Srjs/* DrawTexiOES: marshalled asynchronously */ 698896c5ddc4Srjsstruct marshal_cmd_DrawTexiOES 698996c5ddc4Srjs{ 699096c5ddc4Srjs struct marshal_cmd_base cmd_base; 699196c5ddc4Srjs GLint x; 699296c5ddc4Srjs GLint y; 699396c5ddc4Srjs GLint z; 699496c5ddc4Srjs GLint width; 699596c5ddc4Srjs GLint height; 699696c5ddc4Srjs}; 699796c5ddc4Srjsuint32_t 699896c5ddc4Srjs_mesa_unmarshal_DrawTexiOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexiOES *cmd, const uint64_t *last) 699996c5ddc4Srjs{ 700096c5ddc4Srjs GLint x = cmd->x; 700196c5ddc4Srjs GLint y = cmd->y; 700296c5ddc4Srjs GLint z = cmd->z; 700396c5ddc4Srjs GLint width = cmd->width; 700496c5ddc4Srjs GLint height = cmd->height; 700596c5ddc4Srjs CALL_DrawTexiOES(ctx->CurrentServerDispatch, (x, y, z, width, height)); 700696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexiOES), 8) / 8); 700796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 700896c5ddc4Srjs return cmd_size; 700996c5ddc4Srjs} 701096c5ddc4Srjsvoid GLAPIENTRY 701196c5ddc4Srjs_mesa_marshal_DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height) 701296c5ddc4Srjs{ 701396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 701496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexiOES); 701596c5ddc4Srjs struct marshal_cmd_DrawTexiOES *cmd; 701696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexiOES, cmd_size); 701796c5ddc4Srjs cmd->x = x; 701896c5ddc4Srjs cmd->y = y; 701996c5ddc4Srjs cmd->z = z; 702096c5ddc4Srjs cmd->width = width; 702196c5ddc4Srjs cmd->height = height; 702296c5ddc4Srjs} 702396c5ddc4Srjs 702496c5ddc4Srjs 702596c5ddc4Srjs/* DrawTexivOES: marshalled asynchronously */ 702696c5ddc4Srjsstruct marshal_cmd_DrawTexivOES 702796c5ddc4Srjs{ 702896c5ddc4Srjs struct marshal_cmd_base cmd_base; 702996c5ddc4Srjs GLint coords[5]; 703096c5ddc4Srjs}; 703196c5ddc4Srjsuint32_t 703296c5ddc4Srjs_mesa_unmarshal_DrawTexivOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexivOES *cmd, const uint64_t *last) 703396c5ddc4Srjs{ 703496c5ddc4Srjs const GLint * coords = cmd->coords; 703596c5ddc4Srjs CALL_DrawTexivOES(ctx->CurrentServerDispatch, (coords)); 703696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexivOES), 8) / 8); 703796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 703896c5ddc4Srjs return cmd_size; 703996c5ddc4Srjs} 704096c5ddc4Srjsvoid GLAPIENTRY 704196c5ddc4Srjs_mesa_marshal_DrawTexivOES(const GLint * coords) 704296c5ddc4Srjs{ 704396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 704496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexivOES); 704596c5ddc4Srjs struct marshal_cmd_DrawTexivOES *cmd; 704696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexivOES, cmd_size); 704796c5ddc4Srjs memcpy(cmd->coords, coords, 5 * sizeof(GLint)); 704896c5ddc4Srjs} 704996c5ddc4Srjs 705096c5ddc4Srjs 705196c5ddc4Srjs/* DrawTexfOES: marshalled asynchronously */ 705296c5ddc4Srjsstruct marshal_cmd_DrawTexfOES 705396c5ddc4Srjs{ 705496c5ddc4Srjs struct marshal_cmd_base cmd_base; 705596c5ddc4Srjs GLfloat x; 705696c5ddc4Srjs GLfloat y; 705796c5ddc4Srjs GLfloat z; 705896c5ddc4Srjs GLfloat width; 705996c5ddc4Srjs GLfloat height; 706096c5ddc4Srjs}; 706196c5ddc4Srjsuint32_t 706296c5ddc4Srjs_mesa_unmarshal_DrawTexfOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexfOES *cmd, const uint64_t *last) 706396c5ddc4Srjs{ 706496c5ddc4Srjs GLfloat x = cmd->x; 706596c5ddc4Srjs GLfloat y = cmd->y; 706696c5ddc4Srjs GLfloat z = cmd->z; 706796c5ddc4Srjs GLfloat width = cmd->width; 706896c5ddc4Srjs GLfloat height = cmd->height; 706996c5ddc4Srjs CALL_DrawTexfOES(ctx->CurrentServerDispatch, (x, y, z, width, height)); 707096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexfOES), 8) / 8); 707196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 707296c5ddc4Srjs return cmd_size; 707396c5ddc4Srjs} 707496c5ddc4Srjsvoid GLAPIENTRY 707596c5ddc4Srjs_mesa_marshal_DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) 707696c5ddc4Srjs{ 707796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 707896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexfOES); 707996c5ddc4Srjs struct marshal_cmd_DrawTexfOES *cmd; 708096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexfOES, cmd_size); 708196c5ddc4Srjs cmd->x = x; 708296c5ddc4Srjs cmd->y = y; 708396c5ddc4Srjs cmd->z = z; 708496c5ddc4Srjs cmd->width = width; 708596c5ddc4Srjs cmd->height = height; 708696c5ddc4Srjs} 708796c5ddc4Srjs 708896c5ddc4Srjs 708996c5ddc4Srjs/* DrawTexfvOES: marshalled asynchronously */ 709096c5ddc4Srjsstruct marshal_cmd_DrawTexfvOES 709196c5ddc4Srjs{ 709296c5ddc4Srjs struct marshal_cmd_base cmd_base; 709396c5ddc4Srjs GLfloat coords[5]; 709496c5ddc4Srjs}; 709596c5ddc4Srjsuint32_t 709696c5ddc4Srjs_mesa_unmarshal_DrawTexfvOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexfvOES *cmd, const uint64_t *last) 709796c5ddc4Srjs{ 709896c5ddc4Srjs const GLfloat * coords = cmd->coords; 709996c5ddc4Srjs CALL_DrawTexfvOES(ctx->CurrentServerDispatch, (coords)); 710096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexfvOES), 8) / 8); 710196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 710296c5ddc4Srjs return cmd_size; 710396c5ddc4Srjs} 710496c5ddc4Srjsvoid GLAPIENTRY 710596c5ddc4Srjs_mesa_marshal_DrawTexfvOES(const GLfloat * coords) 710696c5ddc4Srjs{ 710796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 710896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexfvOES); 710996c5ddc4Srjs struct marshal_cmd_DrawTexfvOES *cmd; 711096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexfvOES, cmd_size); 711196c5ddc4Srjs memcpy(cmd->coords, coords, 5 * sizeof(GLfloat)); 711296c5ddc4Srjs} 711396c5ddc4Srjs 711496c5ddc4Srjs 711596c5ddc4Srjs/* DrawTexsOES: marshalled asynchronously */ 711696c5ddc4Srjsstruct marshal_cmd_DrawTexsOES 711796c5ddc4Srjs{ 711896c5ddc4Srjs struct marshal_cmd_base cmd_base; 711996c5ddc4Srjs GLshort x; 712096c5ddc4Srjs GLshort y; 712196c5ddc4Srjs GLshort z; 712296c5ddc4Srjs GLshort width; 712396c5ddc4Srjs GLshort height; 712496c5ddc4Srjs}; 712596c5ddc4Srjsuint32_t 712696c5ddc4Srjs_mesa_unmarshal_DrawTexsOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexsOES *cmd, const uint64_t *last) 712796c5ddc4Srjs{ 712896c5ddc4Srjs GLshort x = cmd->x; 712996c5ddc4Srjs GLshort y = cmd->y; 713096c5ddc4Srjs GLshort z = cmd->z; 713196c5ddc4Srjs GLshort width = cmd->width; 713296c5ddc4Srjs GLshort height = cmd->height; 713396c5ddc4Srjs CALL_DrawTexsOES(ctx->CurrentServerDispatch, (x, y, z, width, height)); 713496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexsOES), 8) / 8); 713596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 713696c5ddc4Srjs return cmd_size; 713796c5ddc4Srjs} 713896c5ddc4Srjsvoid GLAPIENTRY 713996c5ddc4Srjs_mesa_marshal_DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height) 714096c5ddc4Srjs{ 714196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 714296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexsOES); 714396c5ddc4Srjs struct marshal_cmd_DrawTexsOES *cmd; 714496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexsOES, cmd_size); 714596c5ddc4Srjs cmd->x = x; 714696c5ddc4Srjs cmd->y = y; 714796c5ddc4Srjs cmd->z = z; 714896c5ddc4Srjs cmd->width = width; 714996c5ddc4Srjs cmd->height = height; 715096c5ddc4Srjs} 715196c5ddc4Srjs 715296c5ddc4Srjs 715396c5ddc4Srjs/* DrawTexsvOES: marshalled asynchronously */ 715496c5ddc4Srjsstruct marshal_cmd_DrawTexsvOES 715596c5ddc4Srjs{ 715696c5ddc4Srjs struct marshal_cmd_base cmd_base; 715796c5ddc4Srjs GLshort coords[5]; 715896c5ddc4Srjs}; 715996c5ddc4Srjsuint32_t 716096c5ddc4Srjs_mesa_unmarshal_DrawTexsvOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexsvOES *cmd, const uint64_t *last) 716196c5ddc4Srjs{ 716296c5ddc4Srjs const GLshort * coords = cmd->coords; 716396c5ddc4Srjs CALL_DrawTexsvOES(ctx->CurrentServerDispatch, (coords)); 716496c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexsvOES), 8) / 8); 716596c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 716696c5ddc4Srjs return cmd_size; 716796c5ddc4Srjs} 716896c5ddc4Srjsvoid GLAPIENTRY 716996c5ddc4Srjs_mesa_marshal_DrawTexsvOES(const GLshort * coords) 717096c5ddc4Srjs{ 717196c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 717296c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexsvOES); 717396c5ddc4Srjs struct marshal_cmd_DrawTexsvOES *cmd; 717496c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexsvOES, cmd_size); 717596c5ddc4Srjs memcpy(cmd->coords, coords, 5 * sizeof(GLshort)); 717696c5ddc4Srjs} 717796c5ddc4Srjs 717896c5ddc4Srjs 717996c5ddc4Srjs/* DrawTexxOES: marshalled asynchronously */ 718096c5ddc4Srjsstruct marshal_cmd_DrawTexxOES 718196c5ddc4Srjs{ 718296c5ddc4Srjs struct marshal_cmd_base cmd_base; 718396c5ddc4Srjs GLfixed x; 718496c5ddc4Srjs GLfixed y; 718596c5ddc4Srjs GLfixed z; 718696c5ddc4Srjs GLfixed width; 718796c5ddc4Srjs GLfixed height; 718896c5ddc4Srjs}; 718996c5ddc4Srjsuint32_t 719096c5ddc4Srjs_mesa_unmarshal_DrawTexxOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexxOES *cmd, const uint64_t *last) 719196c5ddc4Srjs{ 719296c5ddc4Srjs GLfixed x = cmd->x; 719396c5ddc4Srjs GLfixed y = cmd->y; 719496c5ddc4Srjs GLfixed z = cmd->z; 719596c5ddc4Srjs GLfixed width = cmd->width; 719696c5ddc4Srjs GLfixed height = cmd->height; 719796c5ddc4Srjs CALL_DrawTexxOES(ctx->CurrentServerDispatch, (x, y, z, width, height)); 719896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexxOES), 8) / 8); 719996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 720096c5ddc4Srjs return cmd_size; 720196c5ddc4Srjs} 720296c5ddc4Srjsvoid GLAPIENTRY 720396c5ddc4Srjs_mesa_marshal_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height) 720496c5ddc4Srjs{ 720596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 720696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexxOES); 720796c5ddc4Srjs struct marshal_cmd_DrawTexxOES *cmd; 720896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexxOES, cmd_size); 720996c5ddc4Srjs cmd->x = x; 721096c5ddc4Srjs cmd->y = y; 721196c5ddc4Srjs cmd->z = z; 721296c5ddc4Srjs cmd->width = width; 721396c5ddc4Srjs cmd->height = height; 721496c5ddc4Srjs} 721596c5ddc4Srjs 721696c5ddc4Srjs 721796c5ddc4Srjs/* DrawTexxvOES: marshalled asynchronously */ 721896c5ddc4Srjsstruct marshal_cmd_DrawTexxvOES 721996c5ddc4Srjs{ 722096c5ddc4Srjs struct marshal_cmd_base cmd_base; 722196c5ddc4Srjs GLfixed coords[5]; 722296c5ddc4Srjs}; 722396c5ddc4Srjsuint32_t 722496c5ddc4Srjs_mesa_unmarshal_DrawTexxvOES(struct gl_context *ctx, const struct marshal_cmd_DrawTexxvOES *cmd, const uint64_t *last) 722596c5ddc4Srjs{ 722696c5ddc4Srjs const GLfixed * coords = cmd->coords; 722796c5ddc4Srjs CALL_DrawTexxvOES(ctx->CurrentServerDispatch, (coords)); 722896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DrawTexxvOES), 8) / 8); 722996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 723096c5ddc4Srjs return cmd_size; 723196c5ddc4Srjs} 723296c5ddc4Srjsvoid GLAPIENTRY 723396c5ddc4Srjs_mesa_marshal_DrawTexxvOES(const GLfixed * coords) 723496c5ddc4Srjs{ 723596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 723696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DrawTexxvOES); 723796c5ddc4Srjs struct marshal_cmd_DrawTexxvOES *cmd; 723896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DrawTexxvOES, cmd_size); 723996c5ddc4Srjs memcpy(cmd->coords, coords, 5 * sizeof(GLfixed)); 724096c5ddc4Srjs} 724196c5ddc4Srjs 724296c5ddc4Srjs 724396c5ddc4Srjs/* PointSizePointerOES: marshalled asynchronously */ 724496c5ddc4Srjsstruct marshal_cmd_PointSizePointerOES 724596c5ddc4Srjs{ 724696c5ddc4Srjs struct marshal_cmd_base cmd_base; 724796c5ddc4Srjs GLenum type; 724896c5ddc4Srjs GLsizei stride; 724996c5ddc4Srjs const GLvoid * pointer; 725096c5ddc4Srjs}; 725196c5ddc4Srjsuint32_t 725296c5ddc4Srjs_mesa_unmarshal_PointSizePointerOES(struct gl_context *ctx, const struct marshal_cmd_PointSizePointerOES *cmd, const uint64_t *last) 725396c5ddc4Srjs{ 725496c5ddc4Srjs GLenum type = cmd->type; 725596c5ddc4Srjs GLsizei stride = cmd->stride; 725696c5ddc4Srjs const GLvoid * pointer = cmd->pointer; 725796c5ddc4Srjs CALL_PointSizePointerOES(ctx->CurrentServerDispatch, (type, stride, pointer)); 725896c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_PointSizePointerOES), 8) / 8); 725996c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 726096c5ddc4Srjs return cmd_size; 726196c5ddc4Srjs} 726296c5ddc4Srjsvoid GLAPIENTRY 726396c5ddc4Srjs_mesa_marshal_PointSizePointerOES(GLenum type, GLsizei stride, const GLvoid * pointer) 726496c5ddc4Srjs{ 726596c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 726696c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_PointSizePointerOES); 726796c5ddc4Srjs struct marshal_cmd_PointSizePointerOES *cmd; 726896c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_PointSizePointerOES, cmd_size); 726996c5ddc4Srjs cmd->type = type; 727096c5ddc4Srjs cmd->stride = stride; 727196c5ddc4Srjs cmd->pointer = pointer; 727296c5ddc4Srjs if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_POINT_SIZE, 1, type, stride, pointer); 727396c5ddc4Srjs} 727496c5ddc4Srjs 727596c5ddc4Srjs 727696c5ddc4Srjs/* QueryMatrixxOES: marshalled synchronously */ 727796c5ddc4SrjsGLbitfield GLAPIENTRY 727896c5ddc4Srjs_mesa_marshal_QueryMatrixxOES(GLfixed * mantissa, GLint * exponent) 727996c5ddc4Srjs{ 728096c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 728196c5ddc4Srjs _mesa_glthread_finish_before(ctx, "QueryMatrixxOES"); 728296c5ddc4Srjs return CALL_QueryMatrixxOES(ctx->CurrentServerDispatch, (mantissa, exponent)); 728396c5ddc4Srjs} 728496c5ddc4Srjs 728596c5ddc4Srjs 728696c5ddc4Srjs/* DiscardFramebufferEXT: marshalled asynchronously */ 728796c5ddc4Srjsstruct marshal_cmd_DiscardFramebufferEXT 728896c5ddc4Srjs{ 728996c5ddc4Srjs struct marshal_cmd_base cmd_base; 729096c5ddc4Srjs GLenum target; 729196c5ddc4Srjs GLsizei numAttachments; 729296c5ddc4Srjs /* Next safe_mul(numAttachments, 1 * sizeof(GLenum)) bytes are GLenum attachments[numAttachments] */ 729396c5ddc4Srjs}; 729496c5ddc4Srjsuint32_t 729596c5ddc4Srjs_mesa_unmarshal_DiscardFramebufferEXT(struct gl_context *ctx, const struct marshal_cmd_DiscardFramebufferEXT *cmd, const uint64_t *last) 729696c5ddc4Srjs{ 729796c5ddc4Srjs GLenum target = cmd->target; 729896c5ddc4Srjs GLsizei numAttachments = cmd->numAttachments; 729996c5ddc4Srjs GLenum * attachments; 730096c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 730196c5ddc4Srjs attachments = (GLenum *) variable_data; 730296c5ddc4Srjs CALL_DiscardFramebufferEXT(ctx->CurrentServerDispatch, (target, numAttachments, attachments)); 730396c5ddc4Srjs return cmd->cmd_base.cmd_size; 730496c5ddc4Srjs} 730596c5ddc4Srjsvoid GLAPIENTRY 730696c5ddc4Srjs_mesa_marshal_DiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum * attachments) 730796c5ddc4Srjs{ 730896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 730996c5ddc4Srjs int attachments_size = safe_mul(numAttachments, 1 * sizeof(GLenum)); 731096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DiscardFramebufferEXT) + attachments_size; 731196c5ddc4Srjs struct marshal_cmd_DiscardFramebufferEXT *cmd; 731296c5ddc4Srjs if (unlikely(attachments_size < 0 || (attachments_size > 0 && !attachments) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 731396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "DiscardFramebufferEXT"); 731496c5ddc4Srjs CALL_DiscardFramebufferEXT(ctx->CurrentServerDispatch, (target, numAttachments, attachments)); 731596c5ddc4Srjs return; 731696c5ddc4Srjs } 731796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DiscardFramebufferEXT, cmd_size); 731896c5ddc4Srjs cmd->target = target; 731996c5ddc4Srjs cmd->numAttachments = numAttachments; 732096c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 732196c5ddc4Srjs memcpy(variable_data, attachments, attachments_size); 732296c5ddc4Srjs} 732396c5ddc4Srjs 732496c5ddc4Srjs 732596c5ddc4Srjs/* FramebufferTexture2DMultisampleEXT: marshalled asynchronously */ 732696c5ddc4Srjsstruct marshal_cmd_FramebufferTexture2DMultisampleEXT 732796c5ddc4Srjs{ 732896c5ddc4Srjs struct marshal_cmd_base cmd_base; 732996c5ddc4Srjs GLenum target; 733096c5ddc4Srjs GLenum attachment; 733196c5ddc4Srjs GLenum textarget; 733296c5ddc4Srjs GLuint texture; 733396c5ddc4Srjs GLint level; 733496c5ddc4Srjs GLsizei samples; 733596c5ddc4Srjs}; 733696c5ddc4Srjsuint32_t 733796c5ddc4Srjs_mesa_unmarshal_FramebufferTexture2DMultisampleEXT(struct gl_context *ctx, const struct marshal_cmd_FramebufferTexture2DMultisampleEXT *cmd, const uint64_t *last) 733896c5ddc4Srjs{ 733996c5ddc4Srjs GLenum target = cmd->target; 734096c5ddc4Srjs GLenum attachment = cmd->attachment; 734196c5ddc4Srjs GLenum textarget = cmd->textarget; 734296c5ddc4Srjs GLuint texture = cmd->texture; 734396c5ddc4Srjs GLint level = cmd->level; 734496c5ddc4Srjs GLsizei samples = cmd->samples; 734596c5ddc4Srjs CALL_FramebufferTexture2DMultisampleEXT(ctx->CurrentServerDispatch, (target, attachment, textarget, texture, level, samples)); 734696c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferTexture2DMultisampleEXT), 8) / 8); 734796c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 734896c5ddc4Srjs return cmd_size; 734996c5ddc4Srjs} 735096c5ddc4Srjsvoid GLAPIENTRY 735196c5ddc4Srjs_mesa_marshal_FramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) 735296c5ddc4Srjs{ 735396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 735496c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_FramebufferTexture2DMultisampleEXT); 735596c5ddc4Srjs struct marshal_cmd_FramebufferTexture2DMultisampleEXT *cmd; 735696c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferTexture2DMultisampleEXT, cmd_size); 735796c5ddc4Srjs cmd->target = target; 735896c5ddc4Srjs cmd->attachment = attachment; 735996c5ddc4Srjs cmd->textarget = textarget; 736096c5ddc4Srjs cmd->texture = texture; 736196c5ddc4Srjs cmd->level = level; 736296c5ddc4Srjs cmd->samples = samples; 736396c5ddc4Srjs} 736496c5ddc4Srjs 736596c5ddc4Srjs 736696c5ddc4Srjs/* DepthRangeArrayfvOES: marshalled asynchronously */ 736796c5ddc4Srjsstruct marshal_cmd_DepthRangeArrayfvOES 736896c5ddc4Srjs{ 736996c5ddc4Srjs struct marshal_cmd_base cmd_base; 737096c5ddc4Srjs GLuint first; 737196c5ddc4Srjs GLsizei count; 737296c5ddc4Srjs /* Next safe_mul((2 * count), 1 * sizeof(GLfloat)) bytes are GLfloat v[(2 * count)] */ 737396c5ddc4Srjs}; 737496c5ddc4Srjsuint32_t 737596c5ddc4Srjs_mesa_unmarshal_DepthRangeArrayfvOES(struct gl_context *ctx, const struct marshal_cmd_DepthRangeArrayfvOES *cmd, const uint64_t *last) 737696c5ddc4Srjs{ 737796c5ddc4Srjs GLuint first = cmd->first; 737896c5ddc4Srjs GLsizei count = cmd->count; 737996c5ddc4Srjs GLfloat * v; 738096c5ddc4Srjs const char *variable_data = (const char *) (cmd + 1); 738196c5ddc4Srjs v = (GLfloat *) variable_data; 738296c5ddc4Srjs CALL_DepthRangeArrayfvOES(ctx->CurrentServerDispatch, (first, count, v)); 738396c5ddc4Srjs return cmd->cmd_base.cmd_size; 738496c5ddc4Srjs} 738596c5ddc4Srjsvoid GLAPIENTRY 738696c5ddc4Srjs_mesa_marshal_DepthRangeArrayfvOES(GLuint first, GLsizei count, const GLfloat * v) 738796c5ddc4Srjs{ 738896c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 738996c5ddc4Srjs int v_size = safe_mul((2 * count), 1 * sizeof(GLfloat)); 739096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DepthRangeArrayfvOES) + v_size; 739196c5ddc4Srjs struct marshal_cmd_DepthRangeArrayfvOES *cmd; 739296c5ddc4Srjs if (unlikely(v_size < 0 || (v_size > 0 && !v) || (unsigned)cmd_size > MARSHAL_MAX_CMD_SIZE)) { 739396c5ddc4Srjs _mesa_glthread_finish_before(ctx, "DepthRangeArrayfvOES"); 739496c5ddc4Srjs CALL_DepthRangeArrayfvOES(ctx->CurrentServerDispatch, (first, count, v)); 739596c5ddc4Srjs return; 739696c5ddc4Srjs } 739796c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DepthRangeArrayfvOES, cmd_size); 739896c5ddc4Srjs cmd->first = first; 739996c5ddc4Srjs cmd->count = count; 740096c5ddc4Srjs char *variable_data = (char *) (cmd + 1); 740196c5ddc4Srjs memcpy(variable_data, v, v_size); 740296c5ddc4Srjs} 740396c5ddc4Srjs 740496c5ddc4Srjs 740596c5ddc4Srjs/* DepthRangeIndexedfOES: marshalled asynchronously */ 740696c5ddc4Srjsstruct marshal_cmd_DepthRangeIndexedfOES 740796c5ddc4Srjs{ 740896c5ddc4Srjs struct marshal_cmd_base cmd_base; 740996c5ddc4Srjs GLuint index; 741096c5ddc4Srjs GLfloat n; 741196c5ddc4Srjs GLfloat f; 741296c5ddc4Srjs}; 741396c5ddc4Srjsuint32_t 741496c5ddc4Srjs_mesa_unmarshal_DepthRangeIndexedfOES(struct gl_context *ctx, const struct marshal_cmd_DepthRangeIndexedfOES *cmd, const uint64_t *last) 741596c5ddc4Srjs{ 741696c5ddc4Srjs GLuint index = cmd->index; 741796c5ddc4Srjs GLfloat n = cmd->n; 741896c5ddc4Srjs GLfloat f = cmd->f; 741996c5ddc4Srjs CALL_DepthRangeIndexedfOES(ctx->CurrentServerDispatch, (index, n, f)); 742096c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_DepthRangeIndexedfOES), 8) / 8); 742196c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 742296c5ddc4Srjs return cmd_size; 742396c5ddc4Srjs} 742496c5ddc4Srjsvoid GLAPIENTRY 742596c5ddc4Srjs_mesa_marshal_DepthRangeIndexedfOES(GLuint index, GLfloat n, GLfloat f) 742696c5ddc4Srjs{ 742796c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 742896c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_DepthRangeIndexedfOES); 742996c5ddc4Srjs struct marshal_cmd_DepthRangeIndexedfOES *cmd; 743096c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_DepthRangeIndexedfOES, cmd_size); 743196c5ddc4Srjs cmd->index = index; 743296c5ddc4Srjs cmd->n = n; 743396c5ddc4Srjs cmd->f = f; 743496c5ddc4Srjs} 743596c5ddc4Srjs 743696c5ddc4Srjs 743796c5ddc4Srjs/* FramebufferParameteriMESA: marshalled asynchronously */ 743896c5ddc4Srjsstruct marshal_cmd_FramebufferParameteriMESA 743996c5ddc4Srjs{ 744096c5ddc4Srjs struct marshal_cmd_base cmd_base; 744196c5ddc4Srjs GLenum target; 744296c5ddc4Srjs GLenum pname; 744396c5ddc4Srjs GLint param; 744496c5ddc4Srjs}; 744596c5ddc4Srjsuint32_t 744696c5ddc4Srjs_mesa_unmarshal_FramebufferParameteriMESA(struct gl_context *ctx, const struct marshal_cmd_FramebufferParameteriMESA *cmd, const uint64_t *last) 744796c5ddc4Srjs{ 744896c5ddc4Srjs GLenum target = cmd->target; 744996c5ddc4Srjs GLenum pname = cmd->pname; 745096c5ddc4Srjs GLint param = cmd->param; 745196c5ddc4Srjs CALL_FramebufferParameteriMESA(ctx->CurrentServerDispatch, (target, pname, param)); 745296c5ddc4Srjs const unsigned cmd_size = (align(sizeof(struct marshal_cmd_FramebufferParameteriMESA), 8) / 8); 745396c5ddc4Srjs assert (cmd_size == cmd->cmd_base.cmd_size); 745496c5ddc4Srjs return cmd_size; 745596c5ddc4Srjs} 745696c5ddc4Srjsvoid GLAPIENTRY 745796c5ddc4Srjs_mesa_marshal_FramebufferParameteriMESA(GLenum target, GLenum pname, GLint param) 745896c5ddc4Srjs{ 745996c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 746096c5ddc4Srjs int cmd_size = sizeof(struct marshal_cmd_FramebufferParameteriMESA); 746196c5ddc4Srjs struct marshal_cmd_FramebufferParameteriMESA *cmd; 746296c5ddc4Srjs cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_FramebufferParameteriMESA, cmd_size); 746396c5ddc4Srjs cmd->target = target; 746496c5ddc4Srjs cmd->pname = pname; 746596c5ddc4Srjs cmd->param = param; 746696c5ddc4Srjs} 746796c5ddc4Srjs 746896c5ddc4Srjs 746996c5ddc4Srjs/* GetFramebufferParameterivMESA: marshalled synchronously */ 747096c5ddc4Srjsvoid GLAPIENTRY 747196c5ddc4Srjs_mesa_marshal_GetFramebufferParameterivMESA(GLenum target, GLenum pname, GLint * params) 747296c5ddc4Srjs{ 747396c5ddc4Srjs GET_CURRENT_CONTEXT(ctx); 747496c5ddc4Srjs _mesa_glthread_finish_before(ctx, "GetFramebufferParameterivMESA"); 747596c5ddc4Srjs CALL_GetFramebufferParameterivMESA(ctx->CurrentServerDispatch, (target, pname, params)); 747696c5ddc4Srjs} 747796c5ddc4Srjs 747896c5ddc4Srjs 7479