Re: [Mesa-dev] [RFC PATCH 05/65] mesa: refuse to update sampler parameters when a handle is allocated

2017-05-24 Thread Samuel Pitoiset



On 05/24/2017 12:20 PM, Nicolai Hähnle wrote:

On 19.05.2017 18:52, Samuel Pitoiset wrote:

The ARB_bindless_texture spec says:

"The error INVALID_OPERATION is generated by SamplerParameter* if
  identifies a sampler object referenced by one or more
 texture handles."

Signed-off-by: Samuel Pitoiset 
---
  src/mesa/main/samplerobj.c | 42 
++

  1 file changed, 42 insertions(+)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index ee15c68b4f..cf4bcfce7c 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -801,6 +801,18 @@ _mesa_SamplerParameteri(GLuint sampler, GLenum 
pname, GLint param)

 if (!sampObj)
return;
+   if (sampObj->HandleAllocated) {
+  /* The ARB_bindless_texture spec says:
+   *
+   * "The error INVALID_OPERATION is generated by 
SamplerParameter* if
+   *   identifies a sampler object referenced by one or 
more

+   *  texture handles."
+   */
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameteri(immutable sampler)");
+  return;
+   }


Maybe these could go into sampler_parameter_error_check?


Yes, I added a new boolean parameter to sampler_parameter_error_check() 
to differentiate set/get functions and moved the HandleAllocated check 
there.




Cheers,
Nicolai




+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, param);
@@ -884,6 +896,12 @@ _mesa_SamplerParameterf(GLuint sampler, GLenum 
pname, GLfloat param)

 if (!sampObj)
return;
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterf(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, (GLint) param);
@@ -966,6 +984,12 @@ _mesa_SamplerParameteriv(GLuint sampler, GLenum 
pname, const GLint *params)

 if (!sampObj)
return;
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameteriv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, params[0]);
@@ -1056,6 +1080,12 @@ _mesa_SamplerParameterfv(GLuint sampler, GLenum 
pname, const GLfloat *params)

 if (!sampObj)
return;
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterfv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, (GLint) params[0]);
@@ -1139,6 +1169,12 @@ _mesa_SamplerParameterIiv(GLuint sampler, 
GLenum pname, const GLint *params)

 if (!sampObj)
return;
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterIiv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, params[0]);
@@ -1223,6 +1259,12 @@ _mesa_SamplerParameterIuiv(GLuint sampler, 
GLenum pname, const GLuint *params)

 if (!sampObj)
return;
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterIuiv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, params[0]);





___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [RFC PATCH 05/65] mesa: refuse to update sampler parameters when a handle is allocated

2017-05-24 Thread Nicolai Hähnle

On 19.05.2017 18:52, Samuel Pitoiset wrote:

The ARB_bindless_texture spec says:

"The error INVALID_OPERATION is generated by SamplerParameter* if
  identifies a sampler object referenced by one or more
 texture handles."

Signed-off-by: Samuel Pitoiset 
---
  src/mesa/main/samplerobj.c | 42 ++
  1 file changed, 42 insertions(+)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index ee15c68b4f..cf4bcfce7c 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -801,6 +801,18 @@ _mesa_SamplerParameteri(GLuint sampler, GLenum pname, 
GLint param)
 if (!sampObj)
return;
  
+   if (sampObj->HandleAllocated) {

+  /* The ARB_bindless_texture spec says:
+   *
+   * "The error INVALID_OPERATION is generated by SamplerParameter* if
+   *   identifies a sampler object referenced by one or more
+   *  texture handles."
+   */
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameteri(immutable sampler)");
+  return;
+   }


Maybe these could go into sampler_parameter_error_check?

Cheers,
Nicolai




+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, param);
@@ -884,6 +896,12 @@ _mesa_SamplerParameterf(GLuint sampler, GLenum pname, 
GLfloat param)
 if (!sampObj)
return;
  
+   if (sampObj->HandleAllocated) {

+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterf(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, (GLint) param);
@@ -966,6 +984,12 @@ _mesa_SamplerParameteriv(GLuint sampler, GLenum pname, 
const GLint *params)
 if (!sampObj)
return;
  
+   if (sampObj->HandleAllocated) {

+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameteriv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, params[0]);
@@ -1056,6 +1080,12 @@ _mesa_SamplerParameterfv(GLuint sampler, GLenum pname, 
const GLfloat *params)
 if (!sampObj)
return;
  
+   if (sampObj->HandleAllocated) {

+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterfv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, (GLint) params[0]);
@@ -1139,6 +1169,12 @@ _mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, 
const GLint *params)
 if (!sampObj)
return;
  
+   if (sampObj->HandleAllocated) {

+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterIiv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, params[0]);
@@ -1223,6 +1259,12 @@ _mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, 
const GLuint *params)
 if (!sampObj)
return;
  
+   if (sampObj->HandleAllocated) {

+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterIuiv(immutable sampler)");
+  return;
+   }
+
 switch (pname) {
 case GL_TEXTURE_WRAP_S:
res = set_sampler_wrap_s(ctx, sampObj, params[0]);




--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [RFC PATCH 05/65] mesa: refuse to update sampler parameters when a handle is allocated

2017-05-19 Thread Samuel Pitoiset
The ARB_bindless_texture spec says:

   "The error INVALID_OPERATION is generated by SamplerParameter* if
 identifies a sampler object referenced by one or more
texture handles."

Signed-off-by: Samuel Pitoiset 
---
 src/mesa/main/samplerobj.c | 42 ++
 1 file changed, 42 insertions(+)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index ee15c68b4f..cf4bcfce7c 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -801,6 +801,18 @@ _mesa_SamplerParameteri(GLuint sampler, GLenum pname, 
GLint param)
if (!sampObj)
   return;
 
+   if (sampObj->HandleAllocated) {
+  /* The ARB_bindless_texture spec says:
+   *
+   * "The error INVALID_OPERATION is generated by SamplerParameter* if
+   *   identifies a sampler object referenced by one or more
+   *  texture handles."
+   */
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameteri(immutable sampler)");
+  return;
+   }
+
switch (pname) {
case GL_TEXTURE_WRAP_S:
   res = set_sampler_wrap_s(ctx, sampObj, param);
@@ -884,6 +896,12 @@ _mesa_SamplerParameterf(GLuint sampler, GLenum pname, 
GLfloat param)
if (!sampObj)
   return;
 
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterf(immutable sampler)");
+  return;
+   }
+
switch (pname) {
case GL_TEXTURE_WRAP_S:
   res = set_sampler_wrap_s(ctx, sampObj, (GLint) param);
@@ -966,6 +984,12 @@ _mesa_SamplerParameteriv(GLuint sampler, GLenum pname, 
const GLint *params)
if (!sampObj)
   return;
 
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameteriv(immutable sampler)");
+  return;
+   }
+
switch (pname) {
case GL_TEXTURE_WRAP_S:
   res = set_sampler_wrap_s(ctx, sampObj, params[0]);
@@ -1056,6 +1080,12 @@ _mesa_SamplerParameterfv(GLuint sampler, GLenum pname, 
const GLfloat *params)
if (!sampObj)
   return;
 
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterfv(immutable sampler)");
+  return;
+   }
+
switch (pname) {
case GL_TEXTURE_WRAP_S:
   res = set_sampler_wrap_s(ctx, sampObj, (GLint) params[0]);
@@ -1139,6 +1169,12 @@ _mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, 
const GLint *params)
if (!sampObj)
   return;
 
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterIiv(immutable sampler)");
+  return;
+   }
+
switch (pname) {
case GL_TEXTURE_WRAP_S:
   res = set_sampler_wrap_s(ctx, sampObj, params[0]);
@@ -1223,6 +1259,12 @@ _mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, 
const GLuint *params)
if (!sampObj)
   return;
 
+   if (sampObj->HandleAllocated) {
+  _mesa_error(ctx, GL_INVALID_OPERATION,
+  "glSamplerParameterIuiv(immutable sampler)");
+  return;
+   }
+
switch (pname) {
case GL_TEXTURE_WRAP_S:
   res = set_sampler_wrap_s(ctx, sampObj, params[0]);
-- 
2.13.0

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev