[Mesa-dev] [PATCH 07/25] glapi: Mark compressed teximage functions as sync.

gregory hainaut gregory.hainaut at gmail.com
Thu Mar 9 17:26:13 UTC 2017


> Without doing some additional tracking, we won't know whether the data
> will be immediate user data, or will be loaded from a PBO.  The normal
> teximage functions will be sync by default because they don't know up
> front what the size of their image data is.  But for compressed teximage,
> we have the count information, so they would end up async by default.
> ---
>  src/mapi/glapi/gen/gl_API.xml | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> index ce9ad17..e29825d 100644
> --- a/src/mapi/glapi/gen/gl_API.xml
> +++ b/src/mapi/glapi/gen/gl_API.xml
> @@ -4487,72 +4487,72 @@
>          <param name="m" type="const GLdouble *"/>
>          <glx handcode="true"/>
>      </function>
>  
>      <function name="SampleCoverage" es1="1.0" es2="2.0">
>          <param name="value" type="GLclampf"/>
>          <param name="invert" type="GLboolean"/>
>          <glx rop="229"/>
>      </function>
>  
> -    <function name="CompressedTexImage3D" es2="3.0">
> +    <function name="CompressedTexImage3D" es2="3.0" marshal="sync">
>          <param name="target" type="GLenum"/>
>          <param name="level" type="GLint"/>
>          <param name="internalformat" type="GLenum"/>
>          <param name="width" type="GLsizei"/>
>          <param name="height" type="GLsizei"/>
>          <param name="depth" type="GLsizei"/>
>          <param name="border" type="GLint"/>
>          <param name="imageSize" type="GLsizei" counter="true"/>
>          <param name="data" type="const GLvoid *" count="imageSize"/>
>          <glx rop="216" handcode="client"/>
>      </function>
>  
> -    <function name="CompressedTexImage2D" es1="1.0" es2="2.0">
> +    <function name="CompressedTexImage2D" es1="1.0" es2="2.0" marshal="sync">
>          <param name="target" type="GLenum"/>
>          <param name="level" type="GLint"/>
>          <param name="internalformat" type="GLenum"/>
>          <param name="width" type="GLsizei"/>
>          <param name="height" type="GLsizei"/>
>          <param name="border" type="GLint"/>
>          <param name="imageSize" type="GLsizei" counter="true"/>
>          <param name="data" type="const GLvoid *" count="imageSize"/>
>          <glx rop="215" handcode="client"/>
>      </function>
>  
> -    <function name="CompressedTexImage1D">
> +    <function name="CompressedTexImage1D" marshal="sync">
>          <param name="target" type="GLenum"/>
>          <param name="level" type="GLint"/>
>          <param name="internalformat" type="GLenum"/>
>          <param name="width" type="GLsizei"/>
>          <param name="border" type="GLint"/>
>          <param name="imageSize" type="GLsizei" counter="true"/>
>          <param name="data" type="const GLvoid *" count="imageSize"/>
>          <glx rop="214" handcode="client"/>
>      </function>
>  
> -    <function name="CompressedTexSubImage3D" es2="3.0">
> +    <function name="CompressedTexSubImage3D" es2="3.0" marshal="sync">
>          <param name="target" type="GLenum"/>
>          <param name="level" type="GLint"/>
>          <param name="xoffset" type="GLint"/>
>          <param name="yoffset" type="GLint"/>
>          <param name="zoffset" type="GLint"/>
>          <param name="width" type="GLsizei"/>
>          <param name="height" type="GLsizei"/>
>          <param name="depth" type="GLsizei"/>
>          <param name="format" type="GLenum"/>
>          <param name="imageSize" type="GLsizei" counter="true"/>
>          <param name="data" type="const GLvoid *" count="imageSize"/>
>          <glx rop="219" handcode="client"/>
>      </function>
>  
> -    <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0">
> +    <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0" marshal="sync">
>          <param name="target" type="GLenum"/>
>          <param name="level" type="GLint"/>
>          <param name="xoffset" type="GLint"/>
>          <param name="yoffset" type="GLint"/>
>          <param name="width" type="GLsizei"/>
>          <param name="height" type="GLsizei"/>
>          <param name="format" type="GLenum"/>
>          <param name="imageSize" type="GLsizei" counter="true"/>
>          <param name="data" type="const GLvoid *" count="imageSize"/>
>          <glx rop="218" handcode="client"/>
> -- 
> 2.9.3


Hello,

It is expected/normal that CompressedTexSubImage1D got a default marshal value (async) instead of sync ?
* CompressedTexSubImage1D: async
* CompressedTexSubImage2D: sync
* CompressedTexSubImage3D: sync
* CompressedTexImage1D: sync
* CompressedTexImage2D: sync
* CompressedTexImage3D: sync

Gregory


More information about the mesa-dev mailing list