case GL_CLEAR_BUFFER:
case GL_TEXTURE_VIEW:
case GL_VIEW_COMPATIBILITY_CLASS:
+ case GL_NUM_TILING_TYPES_EXT:
+ case GL_TILING_TYPES_EXT:
/* The ARB_internalformat_query spec says:
*
* "If the <pname> parameter to GetInternalformativ is not SAMPLES
*/
switch(pname) {
case GL_SAMPLES:
+ case GL_TILING_TYPES_EXT:
break;
case GL_MAX_COMBINED_DIMENSIONS:
case GL_TEXTURE_COMPRESSED_BLOCK_WIDTH:
case GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT:
case GL_TEXTURE_COMPRESSED_BLOCK_SIZE:
+ case GL_NUM_TILING_TYPES_EXT:
buffer[0] = 0;
break;
case GL_FILTER:
params[0] = GL_FULL_SUPPORT;
break;
+ case GL_NUM_TILING_TYPES_EXT:
+ params[0] = 2;
+ break;
+ case GL_TILING_TYPES_EXT:
+ params[0] = GL_OPTIMAL_TILING_EXT;
+ params[1] = GL_LINEAR_TILING_EXT;
+ break;
default:
_set_default_response(pname, params);
}
break;
+ case GL_NUM_TILING_TYPES_EXT:
+ case GL_TILING_TYPES_EXT:
+ ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname,
+ buffer);
+ break;
+
default:
unreachable("bad param");
}
/** GL_ARB_shader_image_load_store */
GLenum ImageFormatCompatibilityType;
+ /** GL_EXT_memory_object */
+ GLenum TextureTiling;
+
/** GL_ARB_bindless_texture */
struct util_dynarray SamplerHandles;
struct util_dynarray ImageHandles;
}
goto invalid_pname;
+ case GL_TEXTURE_TILING_EXT:
+ if (ctx->Extensions.EXT_memory_object) {
+ texObj->TextureTiling = params[0];
+
+ return GL_TRUE;
+ }
+ goto invalid_pname;
+
default:
goto invalid_pname;
}
}
return GL_TRUE;
+ case GL_TEXTURE_TILING_EXT:
+ if (ctx->Extensions.EXT_memory_object) {
+ texObj->TextureTiling = params[0];
+ return GL_TRUE;
+ }
+ goto invalid_pname;
+
default:
goto invalid_pname;
}
*params = ENUM_TO_FLOAT(obj->Target);
break;
+ case GL_TEXTURE_TILING_EXT:
+ if (!ctx->Extensions.EXT_memory_object)
+ goto invalid_pname;
+ *params = ENUM_TO_FLOAT(obj->TextureTiling);
+ break;
+
default:
goto invalid_pname;
}
*params = (GLint) obj->Target;
break;
+ case GL_TEXTURE_TILING_EXT:
+ if (!ctx->Extensions.EXT_memory_object)
+ goto invalid_pname;
+ *params = (GLint) obj->TextureTiling;
+ break;
+
default:
goto invalid_pname;
}