X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fdd.h;h=63fc62103a7fec5c510fca6f64e810eb01f5781c;hb=192de3f051c70ff1404369f88ae2d55f1ffcf806;hp=d62fee690f46d6617d90bc5f7cfe45c920a2c0b8;hpb=e2d5a6fac5c2b433cd78c0fc29b420b36c429cb9;p=mesa.git diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index d62fee690f4..63fc62103a7 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -63,7 +63,7 @@ struct gl_memory_info; * want to provoke the driver to throw away the old storage, we will * respect the contents of already referenced data. */ -#define MESA_MAP_NOWAIT_BIT 0x0040 +#define MESA_MAP_NOWAIT_BIT 0x4000 /** @@ -308,9 +308,10 @@ struct dd_function_table { * \return GL_TRUE if the image is OK, GL_FALSE if too large */ GLboolean (*TestProxyTexImage)(struct gl_context *ctx, GLenum target, - GLint level, mesa_format format, + GLuint numLevels, GLint level, + mesa_format format, GLuint numSamples, GLint width, GLint height, - GLint depth, GLint border); + GLint depth); /*@}*/ @@ -473,7 +474,7 @@ struct dd_function_table { struct gl_program *prog); /** Allocate a new program */ struct gl_program * (*NewProgram)(struct gl_context *ctx, GLenum target, - GLuint id); + GLuint id, bool is_arb_asm); /** Delete a program */ void (*DeleteProgram)(struct gl_context *ctx, struct gl_program *prog); /** @@ -609,10 +610,9 @@ struct dd_function_table { /** Set texture environment parameters */ void (*TexEnv)(struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param); - /** Set texture parameters */ + /** Set texture parameter (callee gets param value from the texObj) */ void (*TexParameter)(struct gl_context *ctx, - struct gl_texture_object *texObj, - GLenum pname, const GLfloat *params); + struct gl_texture_object *texObj, GLenum pname); /** Set the viewport */ void (*Viewport)(struct gl_context *ctx); /*@}*/ @@ -780,14 +780,46 @@ struct dd_function_table { /*@}*/ /** - * \name GLSL-related functions (ARB extensions and OpenGL 2.x) + * \name Performance Query objects */ /*@{*/ - struct gl_shader *(*NewShader)(struct gl_context *ctx, - GLuint name, GLenum type); - void (*UseProgram)(struct gl_context *ctx, struct gl_shader_program *shProg); + unsigned (*InitPerfQueryInfo)(struct gl_context *ctx); + void (*GetPerfQueryInfo)(struct gl_context *ctx, + unsigned queryIndex, + const char **name, + GLuint *dataSize, + GLuint *numCounters, + GLuint *numActive); + void (*GetPerfCounterInfo)(struct gl_context *ctx, + unsigned queryIndex, + unsigned counterIndex, + const char **name, + const char **desc, + GLuint *offset, + GLuint *data_size, + GLuint *type_enum, + GLuint *data_type_enum, + GLuint64 *raw_max); + struct gl_perf_query_object * (*NewPerfQueryObject)(struct gl_context *ctx, + unsigned queryIndex); + void (*DeletePerfQuery)(struct gl_context *ctx, + struct gl_perf_query_object *obj); + bool (*BeginPerfQuery)(struct gl_context *ctx, + struct gl_perf_query_object *obj); + void (*EndPerfQuery)(struct gl_context *ctx, + struct gl_perf_query_object *obj); + void (*WaitPerfQuery)(struct gl_context *ctx, + struct gl_perf_query_object *obj); + bool (*IsPerfQueryReady)(struct gl_context *ctx, + struct gl_perf_query_object *obj); + void (*GetPerfQueryData)(struct gl_context *ctx, + struct gl_perf_query_object *obj, + GLsizei dataSize, + GLuint *data, + GLuint *bytesWritten); /*@}*/ + /** * \name GREMEDY debug/marker functions */ @@ -958,6 +990,18 @@ struct dd_function_table { void (*MemoryBarrier)(struct gl_context *ctx, GLbitfield barriers); /** @} */ + /** + * GL_MESA_shader_framebuffer_fetch_non_coherent rendering barrier. + * + * On return from this function any framebuffer contents written by + * previous draw commands are guaranteed to be visible from subsequent + * fragment shader invocations using the + * MESA_shader_framebuffer_fetch_non_coherent interface. + */ + /** @{ */ + void (*BlendBarrier)(struct gl_context *ctx); + /** @} */ + /** * \name GL_ARB_compute_shader interface */ @@ -966,6 +1010,15 @@ struct dd_function_table { void (*DispatchComputeIndirect)(struct gl_context *ctx, GLintptr indirect); /*@}*/ + /** + * \name GL_ARB_compute_variable_group_size interface + */ + /*@{*/ + void (*DispatchComputeGroupSize)(struct gl_context *ctx, + const GLuint *num_groups, + const GLuint *group_size); + /*@}*/ + /** * Query information about memory. Device memory is e.g. VRAM. Staging * memory is e.g. GART. All sizes are in kilobytes.