Compare commits
46 Commits
mesa-7.9.2
...
7.9
Author | SHA1 | Date | |
---|---|---|---|
|
5078cb6858 | ||
|
025d348dc1 | ||
|
2bf24ffaff | ||
|
02e7aa6cea | ||
|
55bf1244e3 | ||
|
70d5758479 | ||
|
72b8f19fa6 | ||
|
e004ac273d | ||
|
9cbc705e83 | ||
|
858db8cd4e | ||
|
d8802cd242 | ||
|
7c4cc8d2b9 | ||
|
a6a5772250 | ||
|
9bcc214159 | ||
|
e03abf70cd | ||
|
0c6fbf66cd | ||
|
14b9e91d01 | ||
|
ff7e6622fc | ||
|
bde5310339 | ||
|
4f362e0494 | ||
|
5408ccb09f | ||
|
203624128c | ||
|
ea95bf7d89 | ||
|
b8050add56 | ||
|
4633054b8b | ||
|
897e464a5d | ||
|
0140b830af | ||
|
9e2c9cdf48 | ||
|
e3dcb53e6e | ||
|
6b46754bc0 | ||
|
7397c034ac | ||
|
39149172c8 | ||
|
c8bd053d3a | ||
|
7272f8fb18 | ||
|
c91d217ff7 | ||
|
e2baddb653 | ||
|
20c7067257 | ||
|
ca76f4f6aa | ||
|
c7305375d1 | ||
|
dea5e972ff | ||
|
c198d29fbe | ||
|
90292b8001 | ||
|
6ea13078fb | ||
|
48d44713f9 | ||
|
351814a21c | ||
|
a6909b6bd3 |
12
Makefile
12
Makefile
@@ -344,12 +344,24 @@ GALLIUM_FILES = \
|
|||||||
$(DIRECTORY)/src/gallium/*/*/*/*.[ch] \
|
$(DIRECTORY)/src/gallium/*/*/*/*.[ch] \
|
||||||
$(DIRECTORY)/src/gallium/*/*/*/*.py
|
$(DIRECTORY)/src/gallium/*/*/*/*.py
|
||||||
|
|
||||||
|
APPLE_DRI_FILES = \
|
||||||
|
$(DIRECTORY)/src/glx/apple/Makefile \
|
||||||
|
$(DIRECTORY)/src/glx/apple/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glx/apple/*.tcl \
|
||||||
|
$(DIRECTORY)/src/glx/apple/apple_exports.list \
|
||||||
|
$(DIRECTORY)/src/glx/apple/GL_aliases \
|
||||||
|
$(DIRECTORY)/src/glx/apple/GL_extensions \
|
||||||
|
$(DIRECTORY)/src/glx/apple/GL_noop \
|
||||||
|
$(DIRECTORY)/src/glx/apple/GL_promoted \
|
||||||
|
$(DIRECTORY)/src/glx/apple/specs/*.spec \
|
||||||
|
$(DIRECTORY)/src/glx/apple/specs/*.tm
|
||||||
|
|
||||||
DRI_FILES = \
|
DRI_FILES = \
|
||||||
$(DIRECTORY)/include/GL/internal/dri_interface.h \
|
$(DIRECTORY)/include/GL/internal/dri_interface.h \
|
||||||
$(DIRECTORY)/include/GL/internal/sarea.h \
|
$(DIRECTORY)/include/GL/internal/sarea.h \
|
||||||
$(DIRECTORY)/src/glx/Makefile \
|
$(DIRECTORY)/src/glx/Makefile \
|
||||||
$(DIRECTORY)/src/glx/*.[ch] \
|
$(DIRECTORY)/src/glx/*.[ch] \
|
||||||
|
$(APPLE_DRI_FILES) \
|
||||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
|
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
|
||||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
|
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
|
||||||
$(DIRECTORY)/src/mesa/drivers/dri/dri.pc.in \
|
$(DIRECTORY)/src/mesa/drivers/dri/dri.pc.in \
|
||||||
|
@@ -31,21 +31,23 @@ CXXFLAGS = -ggdb3 -Os -Wall -fno-strict-aliasing \
|
|||||||
-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
|
-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
|
||||||
|
|
||||||
# Library names (actual file names)
|
# Library names (actual file names)
|
||||||
GL_LIB_NAME = libGL.dylib
|
GL_LIB_NAME = lib$(GL_LIB).dylib
|
||||||
GLU_LIB_NAME = libGLU.dylib
|
GLU_LIB_NAME = lib$(GLU_LIB).dylib
|
||||||
GLUT_LIB_NAME = libglut.dylib
|
GLUT_LIB_NAME = lib$(GLUT_LIB).dylib
|
||||||
GLW_LIB_NAME = libGLw.dylib
|
GLW_LIB_NAME = lib$(GLW_LIB).dylib
|
||||||
OSMESA_LIB_NAME = libOSMesa.dylib
|
OSMESA_LIB_NAME = lib$(OSMESA_LIB).dylib
|
||||||
|
VG_LIB_NAME = lib$(VG_LIB).dylib
|
||||||
|
|
||||||
# globs used to install the lib and all symlinks
|
# globs used to install the lib and all symlinks
|
||||||
GL_LIB_GLOB = libGL.*dylib
|
GL_LIB_GLOB = lib$(GL_LIB).*dylib
|
||||||
GLU_LIB_GLOB = libGLU.*dylib
|
GLU_LIB_GLOB = lib$(GLU_LIB).*dylib
|
||||||
GLUT_LIB_GLOB = libglut.*dylib
|
GLUT_LIB_GLOB = lib$(GLUT_LIB).*dylib
|
||||||
GLW_LIB_GLOB = libGLw.*dylib
|
GLW_LIB_GLOB = lib$(GLW_LIB).*dylib
|
||||||
OSMESA_LIB_GLOB = libOSMesa.*dylib
|
OSMESA_LIB_GLOB = lib$(OSMESA_LIB).*dylib
|
||||||
|
VG_LIB_GLOB = lib$(VG_LIB).*dylib
|
||||||
|
|
||||||
GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread
|
GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread
|
||||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
OSMESA_LIB_DEPS =
|
||||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXi -lXext
|
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXi -lXext
|
||||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt
|
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt
|
||||||
@@ -57,3 +59,5 @@ GLU_DIRS = sgi
|
|||||||
DRIVER_DIRS = osmesa
|
DRIVER_DIRS = osmesa
|
||||||
#DRIVER_DIRS = dri
|
#DRIVER_DIRS = dri
|
||||||
DRI_DIRS = swrast
|
DRI_DIRS = swrast
|
||||||
|
GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad failover
|
||||||
|
#GALLIUM_DRIVERS_DIRS += llvmpipe
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<body bgcolor="#eeeeee">
|
<body bgcolor="#eeeeee">
|
||||||
|
|
||||||
<H1>Mesa 7.9.2 Release Notes / TBD</H1>
|
<H1>Mesa 7.9.2 Release Notes / March 2, 2011</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mesa 7.9.2 is a bug fix release which fixes bugs found since the 7.9.1 release.
|
Mesa 7.9.2 is a bug fix release which fixes bugs found since the 7.9.1 release.
|
||||||
@@ -28,7 +28,12 @@ for DRI hardware acceleration.
|
|||||||
|
|
||||||
<h2>MD5 checksums</h2>
|
<h2>MD5 checksums</h2>
|
||||||
<pre>
|
<pre>
|
||||||
TBD
|
eb4ab8c1a03386def3ea34b1358e9cda MesaLib-7.9.2.tar.gz
|
||||||
|
8f6d1474912787ce13bd35f3bae9938a MesaLib-7.9.2.tar.bz2
|
||||||
|
427a81dd43ac97603768dc5c6af3df26 MesaLib-7.9.2.zip
|
||||||
|
aacb8f4db997e346db40c6066942140a MesaGLUT-7.9.2.tar.gz
|
||||||
|
18abe6cff4fad8ad4752c7b7ab548e5d MesaGLUT-7.9.2.tar.bz2
|
||||||
|
3189e5732d636c71baf3d8bc23ce7b11 MesaGLUT-7.9.2.zip
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
@@ -741,8 +741,6 @@ void util_blitter_copy_region(struct blitter_context *blitter,
|
|||||||
if (dst == src) {
|
if (dst == src) {
|
||||||
assert(!is_overlap(srcx, srcx + width, srcy, srcy + height,
|
assert(!is_overlap(srcx, srcx + width, srcy, srcy + height,
|
||||||
dstx, dstx + width, dsty, dsty + height));
|
dstx, dstx + width, dsty, dsty + height));
|
||||||
} else {
|
|
||||||
assert(dst->format == src->format);
|
|
||||||
}
|
}
|
||||||
assert(src->target < PIPE_MAX_TEXTURE_TYPES);
|
assert(src->target < PIPE_MAX_TEXTURE_TYPES);
|
||||||
|
|
||||||
|
@@ -475,6 +475,11 @@ void r300_emit_fb_state_pipelined(struct r300_context *r300,
|
|||||||
for (i = 0; i < fb->nr_cbufs; i++) {
|
for (i = 0; i < fb->nr_cbufs; i++) {
|
||||||
OUT_CS(r300_surface(fb->cbufs[i])->format);
|
OUT_CS(r300_surface(fb->cbufs[i])->format);
|
||||||
}
|
}
|
||||||
|
for (; i < 1; i++) {
|
||||||
|
OUT_CS(R300_US_OUT_FMT_C4_8 |
|
||||||
|
R300_C0_SEL_B | R300_C1_SEL_G |
|
||||||
|
R300_C2_SEL_R | R300_C3_SEL_A);
|
||||||
|
}
|
||||||
for (; i < 4; i++) {
|
for (; i < 4; i++) {
|
||||||
OUT_CS(R300_US_OUT_FMT_UNUSED);
|
OUT_CS(R300_US_OUT_FMT_UNUSED);
|
||||||
}
|
}
|
||||||
|
@@ -204,7 +204,7 @@ static int r300_get_shader_param(struct pipe_screen *pscreen, unsigned shader, e
|
|||||||
case PIPE_SHADER_CAP_MAX_PREDS:
|
case PIPE_SHADER_CAP_MAX_PREDS:
|
||||||
return is_r500 ? 1 : 0;
|
return is_r500 ? 1 : 0;
|
||||||
case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
|
case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PIPE_SHADER_VERTEX:
|
case PIPE_SHADER_VERTEX:
|
||||||
@@ -231,7 +231,7 @@ static int r300_get_shader_param(struct pipe_screen *pscreen, unsigned shader, e
|
|||||||
case PIPE_SHADER_CAP_MAX_PREDS:
|
case PIPE_SHADER_CAP_MAX_PREDS:
|
||||||
return is_r500 ? 4 : 0; /* XXX guessed. */
|
return is_r500 ? 4 : 0; /* XXX guessed. */
|
||||||
case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
|
case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
|
||||||
return 1;
|
return 0;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -2021,17 +2021,24 @@ ast_declarator_list::hir(exec_list *instructions,
|
|||||||
* preceded by one of these precision qualifiers [...] Literal
|
* preceded by one of these precision qualifiers [...] Literal
|
||||||
* constants do not have precision qualifiers. Neither do Boolean
|
* constants do not have precision qualifiers. Neither do Boolean
|
||||||
* variables.
|
* variables.
|
||||||
|
*
|
||||||
|
* In GLSL ES, sampler types are also allowed.
|
||||||
|
*
|
||||||
|
* From page 87 of the GLSL ES spec:
|
||||||
|
* "RESOLUTION: Allow sampler types to take a precision qualifier."
|
||||||
*/
|
*/
|
||||||
if (this->type->specifier->precision != ast_precision_none
|
if (this->type->specifier->precision != ast_precision_none
|
||||||
&& !var->type->is_float()
|
&& !var->type->is_float()
|
||||||
&& !var->type->is_integer()
|
&& !var->type->is_integer()
|
||||||
|
&& !(var->type->is_sampler() && state->es_shader)
|
||||||
&& !(var->type->is_array()
|
&& !(var->type->is_array()
|
||||||
&& (var->type->fields.array->is_float()
|
&& (var->type->fields.array->is_float()
|
||||||
|| var->type->fields.array->is_integer()))) {
|
|| var->type->fields.array->is_integer()))) {
|
||||||
|
|
||||||
_mesa_glsl_error(&loc, state,
|
_mesa_glsl_error(&loc, state,
|
||||||
"precision qualifiers apply only to floating point "
|
"precision qualifiers apply only to floating point"
|
||||||
"and integer types");
|
"%s types", state->es_shader ? ", integer, and sampler"
|
||||||
|
: "and integer");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Process the initializer and add its instructions to a temporary
|
/* Process the initializer and add its instructions to a temporary
|
||||||
|
@@ -38,7 +38,7 @@ SOURCES = \
|
|||||||
appledri.c \
|
appledri.c \
|
||||||
../clientattrib.c \
|
../clientattrib.c \
|
||||||
../compsize.c \
|
../compsize.c \
|
||||||
../glcontextmodes.c \
|
../glxconfig.c \
|
||||||
glx_empty.c \
|
glx_empty.c \
|
||||||
glx_error.c \
|
glx_error.c \
|
||||||
../glx_pbuffer.c \
|
../glx_pbuffer.c \
|
||||||
@@ -49,7 +49,8 @@ SOURCES = \
|
|||||||
../glxextensions.c \
|
../glxextensions.c \
|
||||||
glxreply.c \
|
glxreply.c \
|
||||||
../pixel.c \
|
../pixel.c \
|
||||||
../xfont.c
|
../xfont.c \
|
||||||
|
../applegl_glx.c
|
||||||
|
|
||||||
include $(TOP)/src/mesa/sources.mak
|
include $(TOP)/src/mesa/sources.mak
|
||||||
|
|
||||||
|
@@ -44,7 +44,7 @@
|
|||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "apple_glx.h"
|
#include "apple_glx.h"
|
||||||
#include "glcontextmodes.h"
|
#include "glxconfig.h"
|
||||||
#include "apple_cgl.h"
|
#include "apple_cgl.h"
|
||||||
|
|
||||||
/* mesa defines in glew.h, Apple in glext.h.
|
/* mesa defines in glew.h, Apple in glext.h.
|
||||||
@@ -128,7 +128,7 @@ apple_glx_pbuffer_create(Display * dpy, GLXFBConfig config,
|
|||||||
Window root;
|
Window root;
|
||||||
int screen;
|
int screen;
|
||||||
Pixmap xid;
|
Pixmap xid;
|
||||||
struct glx_config *modes = (__GLcontextModes *) config;
|
struct glx_config *modes = (struct glx_config *) config;
|
||||||
|
|
||||||
root = DefaultRootWindow(dpy);
|
root = DefaultRootWindow(dpy);
|
||||||
screen = DefaultScreen(dpy);
|
screen = DefaultScreen(dpy);
|
||||||
|
@@ -40,7 +40,7 @@
|
|||||||
#include "apple_visual.h"
|
#include "apple_visual.h"
|
||||||
#include "apple_glx_drawable.h"
|
#include "apple_glx_drawable.h"
|
||||||
#include "appledri.h"
|
#include "appledri.h"
|
||||||
#include "glcontextmodes.h"
|
#include "glxconfig.h"
|
||||||
|
|
||||||
static bool pixmap_make_current(struct apple_glx_context *ac,
|
static bool pixmap_make_current(struct apple_glx_context *ac,
|
||||||
struct apple_glx_drawable *d);
|
struct apple_glx_drawable *d);
|
||||||
|
@@ -47,7 +47,7 @@
|
|||||||
#include "apple_cgl.h"
|
#include "apple_cgl.h"
|
||||||
#include "apple_visual.h"
|
#include "apple_visual.h"
|
||||||
#include "apple_glx.h"
|
#include "apple_glx.h"
|
||||||
#include "glcontextmodes.h"
|
#include "glxconfig.h"
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@@ -48,7 +48,7 @@ struct apple_xgl_saved_state
|
|||||||
static void
|
static void
|
||||||
SetRead(struct apple_xgl_saved_state *saved)
|
SetRead(struct apple_xgl_saved_state *saved)
|
||||||
{
|
{
|
||||||
GLXContext gc = __glXGetCurrentContext();
|
struct glx_context *gc = __glXGetCurrentContext();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* By default indicate that the state was not swapped, so that UnsetRead
|
* By default indicate that the state was not swapped, so that UnsetRead
|
||||||
@@ -81,7 +81,7 @@ static void
|
|||||||
UnsetRead(struct apple_xgl_saved_state *saved)
|
UnsetRead(struct apple_xgl_saved_state *saved)
|
||||||
{
|
{
|
||||||
if (saved->swapped) {
|
if (saved->swapped) {
|
||||||
GLXContext gc = __glXGetCurrentContext();
|
struct glx_context *gc = __glXGetCurrentContext();
|
||||||
Display *dpy = glXGetCurrentDisplay();
|
Display *dpy = glXGetCurrentDisplay();
|
||||||
|
|
||||||
if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext,
|
if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext,
|
||||||
|
@@ -49,7 +49,7 @@ extern struct apple_xgl_api __gl_api;
|
|||||||
void
|
void
|
||||||
glDrawBuffer(GLenum mode)
|
glDrawBuffer(GLenum mode)
|
||||||
{
|
{
|
||||||
GLXContext gc = glXGetCurrentContext();
|
struct glx_context * gc = __glXGetCurrentContext();
|
||||||
|
|
||||||
if (gc && apple_glx_context_uses_stereo(gc->driContext)) {
|
if (gc && apple_glx_context_uses_stereo(gc->driContext)) {
|
||||||
GLenum buf[2];
|
GLenum buf[2];
|
||||||
@@ -84,7 +84,7 @@ glDrawBuffer(GLenum mode)
|
|||||||
void
|
void
|
||||||
glDrawBuffers(GLsizei n, const GLenum * bufs)
|
glDrawBuffers(GLsizei n, const GLenum * bufs)
|
||||||
{
|
{
|
||||||
GLXContext gc = glXGetCurrentContext();
|
struct glx_context * gc = __glXGetCurrentContext();
|
||||||
|
|
||||||
if (gc && apple_glx_context_uses_stereo(gc->driContext)) {
|
if (gc && apple_glx_context_uses_stereo(gc->driContext)) {
|
||||||
GLenum newbuf[n + 2];
|
GLenum newbuf[n + 2];
|
||||||
|
@@ -36,7 +36,7 @@ extern struct apple_xgl_api __gl_api;
|
|||||||
void
|
void
|
||||||
glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
|
glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
|
||||||
{
|
{
|
||||||
GLXContext gc = __glXGetCurrentContext();
|
struct glx_context *gc = __glXGetCurrentContext();
|
||||||
Display *dpy = glXGetCurrentDisplay();
|
Display *dpy = glXGetCurrentDisplay();
|
||||||
|
|
||||||
if (gc && gc->driContext)
|
if (gc && gc->driContext)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#include "glxclient.h"
|
#include "glxclient.h"
|
||||||
#include "glxextensions.h"
|
#include "glxextensions.h"
|
||||||
#include "glcontextmodes.h"
|
#include "glxconfig.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** GLX_SGI_swap_control
|
** GLX_SGI_swap_control
|
||||||
|
@@ -27,22 +27,24 @@
|
|||||||
prior written authorization.
|
prior written authorization.
|
||||||
*/
|
*/
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <assert.h>
|
||||||
#include <X11/Xlibint.h>
|
#include <X11/Xlibint.h>
|
||||||
#include <X11/extensions/extutil.h>
|
#include <X11/extensions/extutil.h>
|
||||||
#include <X11/extensions/Xext.h>
|
#include <X11/extensions/Xext.h>
|
||||||
#include "glxclient.h"
|
#include "glxclient.h"
|
||||||
#include "glx_error.h"
|
#include "glx_error.h"
|
||||||
|
|
||||||
extern XExtDisplayInfo *__glXFindDisplay(Display * dpy);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
__glXSendError(Display * dpy, int errorCode, unsigned long resourceID,
|
__glXSendError(Display * dpy, int errorCode, unsigned long resourceID,
|
||||||
unsigned long minorCode, bool coreX11error)
|
unsigned long minorCode, bool coreX11error)
|
||||||
{
|
{
|
||||||
XExtDisplayInfo *info = __glXFindDisplay(dpy);
|
struct glx_display *glx_dpy = __glXInitialize(dpy);
|
||||||
GLXContext gc = __glXGetCurrentContext();
|
struct glx_context *gc = __glXGetCurrentContext();
|
||||||
xError error;
|
xError error;
|
||||||
|
|
||||||
|
assert(glx_dpy);
|
||||||
|
assert(gc);
|
||||||
|
|
||||||
LockDisplay(dpy);
|
LockDisplay(dpy);
|
||||||
|
|
||||||
error.type = X_Error;
|
error.type = X_Error;
|
||||||
@@ -51,7 +53,7 @@ __glXSendError(Display * dpy, int errorCode, unsigned long resourceID,
|
|||||||
error.errorCode = errorCode;
|
error.errorCode = errorCode;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
error.errorCode = info->codes->first_error + errorCode;
|
error.errorCode = glx_dpy->codes->first_error + errorCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
error.sequenceNumber = dpy->request;
|
error.sequenceNumber = dpy->request;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
# enumext.spec - list of GL enumerants for glext.h header
|
# enumext.spec - list of GL enumerants for glext.h header
|
||||||
#
|
#
|
||||||
# $Revision: 10971 $ on $Date: 2010-04-09 02:45:33 -0700 (Fri, 09 Apr 2010) $
|
# $Revision: 14384 $ on $Date: 2011-04-05 23:05:03 -0700 (Tue, 05 Apr 2011) $
|
||||||
|
|
||||||
# This is derived from the master GL enumerant registry (enum.spec).
|
# This is derived from the master GL enumerant registry (enum.spec).
|
||||||
#
|
#
|
||||||
@@ -1380,7 +1380,7 @@ VERSION_3_1 enum:
|
|||||||
passthru: /* Reuse tokens from ARB_copy_buffer */
|
passthru: /* Reuse tokens from ARB_copy_buffer */
|
||||||
use ARB_copy_buffer COPY_READ_BUFFER
|
use ARB_copy_buffer COPY_READ_BUFFER
|
||||||
use ARB_copy_buffer COPY_WRITE_BUFFER
|
use ARB_copy_buffer COPY_WRITE_BUFFER
|
||||||
passthru: /* Would reuse tokens from ARB_draw_instanced, but it has none */
|
passthru: /* Reuse tokens from ARB_draw_instanced (none) */
|
||||||
passthru: /* Reuse tokens from ARB_uniform_buffer_object */
|
passthru: /* Reuse tokens from ARB_uniform_buffer_object */
|
||||||
use ARB_uniform_buffer_object UNIFORM_BUFFER
|
use ARB_uniform_buffer_object UNIFORM_BUFFER
|
||||||
use ARB_uniform_buffer_object UNIFORM_BUFFER_BINDING
|
use ARB_uniform_buffer_object UNIFORM_BUFFER_BINDING
|
||||||
@@ -1447,8 +1447,8 @@ VERSION_3_2 enum:
|
|||||||
use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
|
use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
|
||||||
passthru: /* Reuse tokens from ARB_depth_clamp */
|
passthru: /* Reuse tokens from ARB_depth_clamp */
|
||||||
use ARB_depth_clamp DEPTH_CLAMP
|
use ARB_depth_clamp DEPTH_CLAMP
|
||||||
passthru: /* Would reuse tokens from ARB_draw_elements_base_vertex, but it has none */
|
passthru: /* Reuse tokens from ARB_draw_elements_base_vertex (none) */
|
||||||
passthru: /* Would reuse tokens from ARB_fragment_coord_conventions, but it has none */
|
passthru: /* Reuse tokens from ARB_fragment_coord_conventions (none) */
|
||||||
passthru: /* Reuse tokens from ARB_provoking_vertex */
|
passthru: /* Reuse tokens from ARB_provoking_vertex */
|
||||||
use ARB_provoking_vertex QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
|
use ARB_provoking_vertex QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
|
||||||
use ARB_provoking_vertex FIRST_VERTEX_CONVENTION
|
use ARB_provoking_vertex FIRST_VERTEX_CONVENTION
|
||||||
@@ -1504,17 +1504,18 @@ passthru: /* Don't need to reuse tokens from ARB_vertex_array_bgra since they're
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
VERSION_3_3 enum:
|
VERSION_3_3 enum:
|
||||||
|
VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE # ARB_instanced_arrays
|
||||||
passthru: /* Reuse tokens from ARB_blend_func_extended */
|
passthru: /* Reuse tokens from ARB_blend_func_extended */
|
||||||
use ARB_blend_func_extended SRC1_COLOR
|
use ARB_blend_func_extended SRC1_COLOR
|
||||||
use ARB_blend_func_extended ONE_MINUS_SRC1_COLOR
|
use ARB_blend_func_extended ONE_MINUS_SRC1_COLOR
|
||||||
use ARB_blend_func_extended ONE_MINUS_SRC1_ALPHA
|
use ARB_blend_func_extended ONE_MINUS_SRC1_ALPHA
|
||||||
use ARB_blend_func_extended MAX_DUAL_SOURCE_DRAW_BUFFERS
|
use ARB_blend_func_extended MAX_DUAL_SOURCE_DRAW_BUFFERS
|
||||||
passthru: /* Would reuse tokens from ARB_explicit_attrib_location, but it has none */
|
passthru: /* Reuse tokens from ARB_explicit_attrib_location (none) */
|
||||||
passthru: /* Reuse tokens from ARB_occlusion_query2 */
|
passthru: /* Reuse tokens from ARB_occlusion_query2 */
|
||||||
use ARB_occlusion_query2 ANY_SAMPLES_PASSED
|
use ARB_occlusion_query2 ANY_SAMPLES_PASSED
|
||||||
passthru: /* Reuse tokens from ARB_sampler_objects */
|
passthru: /* Reuse tokens from ARB_sampler_objects */
|
||||||
use ARB_sampler_objects SAMPLER_BINDING
|
use ARB_sampler_objects SAMPLER_BINDING
|
||||||
passthru: /* Would reuse tokens from ARB_shader_bit_encoding, but it has none */
|
passthru: /* Reuse tokens from ARB_shader_bit_encoding (none) */
|
||||||
passthru: /* Reuse tokens from ARB_texture_rgb10_a2ui */
|
passthru: /* Reuse tokens from ARB_texture_rgb10_a2ui */
|
||||||
use ARB_texture_rgb10_a2ui RGB10_A2UI
|
use ARB_texture_rgb10_a2ui RGB10_A2UI
|
||||||
passthru: /* Reuse tokens from ARB_texture_swizzle */
|
passthru: /* Reuse tokens from ARB_texture_swizzle */
|
||||||
@@ -1536,6 +1537,19 @@ passthru: /* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
VERSION_4_0 enum:
|
VERSION_4_0 enum:
|
||||||
|
SAMPLE_SHADING = 0x8C36 # ARB_sample_shading
|
||||||
|
MIN_SAMPLE_SHADING_VALUE = 0x8C37 # ARB_sample_shading
|
||||||
|
MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E # ARB_texture_gather
|
||||||
|
MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F # ARB_texture_gather
|
||||||
|
TEXTURE_CUBE_MAP_ARRAY = 0x9009 # ARB_texture_cube_map_array
|
||||||
|
TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A # ARB_texture_cube_map_array
|
||||||
|
PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B # ARB_texture_cube_map_array
|
||||||
|
SAMPLER_CUBE_MAP_ARRAY = 0x900C # ARB_texture_cube_map_array
|
||||||
|
SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D # ARB_texture_cube_map_array
|
||||||
|
INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E # ARB_texture_cube_map_array
|
||||||
|
UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F # ARB_texture_cube_map_array
|
||||||
|
passthru: /* Reuse tokens from ARB_texture_query_lod (none) */
|
||||||
|
passthru: /* Reuse tokens from ARB_draw_buffers_blend (none) */
|
||||||
passthru: /* Reuse tokens from ARB_draw_indirect */
|
passthru: /* Reuse tokens from ARB_draw_indirect */
|
||||||
use ARB_draw_indirect DRAW_INDIRECT_BUFFER
|
use ARB_draw_indirect DRAW_INDIRECT_BUFFER
|
||||||
use ARB_draw_indirect DRAW_INDIRECT_BUFFER_BINDING
|
use ARB_draw_indirect DRAW_INDIRECT_BUFFER_BINDING
|
||||||
@@ -1602,7 +1616,7 @@ passthru: /* Reuse tokens from ARB_tessellation_shader */
|
|||||||
use ARB_tessellation_shader UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
|
use ARB_tessellation_shader UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
|
||||||
use ARB_tessellation_shader TESS_EVALUATION_SHADER
|
use ARB_tessellation_shader TESS_EVALUATION_SHADER
|
||||||
use ARB_tessellation_shader TESS_CONTROL_SHADER
|
use ARB_tessellation_shader TESS_CONTROL_SHADER
|
||||||
passthru: /* Would reuse tokens from ARB_texture_buffer_object_rgb32, but it has none */
|
passthru: /* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */
|
||||||
passthru: /* Reuse tokens from ARB_transform_feedback2 */
|
passthru: /* Reuse tokens from ARB_transform_feedback2 */
|
||||||
use ARB_tessellation_shader TRANSFORM_FEEDBACK
|
use ARB_tessellation_shader TRANSFORM_FEEDBACK
|
||||||
use ARB_tessellation_shader TRANSFORM_FEEDBACK_BUFFER_PAUSED
|
use ARB_tessellation_shader TRANSFORM_FEEDBACK_BUFFER_PAUSED
|
||||||
@@ -1612,6 +1626,53 @@ passthru: /* Reuse tokens from ARB_transform_feedback3 */
|
|||||||
use ARB_tessellation_shader MAX_TRANSFORM_FEEDBACK_BUFFERS
|
use ARB_tessellation_shader MAX_TRANSFORM_FEEDBACK_BUFFERS
|
||||||
use ARB_tessellation_shader MAX_VERTEX_STREAMS
|
use ARB_tessellation_shader MAX_VERTEX_STREAMS
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# OpenGL 4.1 enums
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
VERSION_4_1 enum:
|
||||||
|
passthru: /* Reuse tokens from ARB_ES2_compatibility */
|
||||||
|
use ARB_ES2_compatibility FIXED
|
||||||
|
use ARB_ES2_compatibility IMPLEMENTATION_COLOR_READ_TYPE
|
||||||
|
use ARB_ES2_compatibility IMPLEMENTATION_COLOR_READ_FORMAT
|
||||||
|
use ARB_ES2_compatibility LOW_FLOAT
|
||||||
|
use ARB_ES2_compatibility MEDIUM_FLOAT
|
||||||
|
use ARB_ES2_compatibility HIGH_FLOAT
|
||||||
|
use ARB_ES2_compatibility LOW_INT
|
||||||
|
use ARB_ES2_compatibility MEDIUM_INT
|
||||||
|
use ARB_ES2_compatibility HIGH_INT
|
||||||
|
use ARB_ES2_compatibility SHADER_COMPILER
|
||||||
|
use ARB_ES2_compatibility NUM_SHADER_BINARY_FORMATS
|
||||||
|
use ARB_ES2_compatibility MAX_VERTEX_UNIFORM_VECTORS
|
||||||
|
use ARB_ES2_compatibility MAX_VARYING_VECTORS
|
||||||
|
use ARB_ES2_compatibility MAX_FRAGMENT_UNIFORM_VECTORS
|
||||||
|
passthru: /* Reuse tokens from ARB_get_program_binary */
|
||||||
|
use ARB_get_program_binary PROGRAM_BINARY_RETRIEVABLE_HINT
|
||||||
|
use ARB_get_program_binary PROGRAM_BINARY_LENGTH
|
||||||
|
use ARB_get_program_binary NUM_PROGRAM_BINARY_FORMATS
|
||||||
|
use ARB_get_program_binary PROGRAM_BINARY_FORMATS
|
||||||
|
passthru: /* Reuse tokens from ARB_separate_shader_objects */
|
||||||
|
use ARB_separate_shader_objects VERTEX_SHADER_BIT
|
||||||
|
use ARB_separate_shader_objects FRAGMENT_SHADER_BIT
|
||||||
|
use ARB_separate_shader_objects GEOMETRY_SHADER_BIT
|
||||||
|
use ARB_separate_shader_objects TESS_CONTROL_SHADER_BIT
|
||||||
|
use ARB_separate_shader_objects TESS_EVALUATION_SHADER_BIT
|
||||||
|
use ARB_separate_shader_objects ALL_SHADER_BITS
|
||||||
|
use ARB_separate_shader_objects PROGRAM_SEPARABLE
|
||||||
|
use ARB_separate_shader_objects ACTIVE_PROGRAM
|
||||||
|
use ARB_separate_shader_objects PROGRAM_PIPELINE_BINDING
|
||||||
|
passthru: /* Reuse tokens from ARB_shader_precision (none) */
|
||||||
|
passthru: /* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */
|
||||||
|
passthru: /* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */
|
||||||
|
use ARB_viewport_array MAX_VIEWPORTS
|
||||||
|
use ARB_viewport_array VIEWPORT_SUBPIXEL_BITS
|
||||||
|
use ARB_viewport_array VIEWPORT_BOUNDS_RANGE
|
||||||
|
use ARB_viewport_array LAYER_PROVOKING_VERTEX
|
||||||
|
use ARB_viewport_array VIEWPORT_INDEX_PROVOKING_VERTEX
|
||||||
|
use ARB_viewport_array UNDEFINED_VERTEX
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@@ -2433,7 +2494,7 @@ ARB_half_float_vertex enum:
|
|||||||
|
|
||||||
# ARB Extension #49
|
# ARB Extension #49
|
||||||
ARB_instanced_arrays enum:
|
ARB_instanced_arrays enum:
|
||||||
VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE
|
VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -2652,33 +2713,29 @@ ARB_vertex_array_bgra enum:
|
|||||||
# No new tokens
|
# No new tokens
|
||||||
# ARB Extension #69
|
# ARB Extension #69
|
||||||
ARB_draw_buffers_blend enum:
|
ARB_draw_buffers_blend enum:
|
||||||
#@@@ Add ARB suffixes here & functions!
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# ARB Extension #70
|
# ARB Extension #70
|
||||||
#@@@ Add ARB suffixes here & functions!
|
|
||||||
ARB_sample_shading enum:
|
ARB_sample_shading enum:
|
||||||
SAMPLE_SHADING = 0x8C36
|
SAMPLE_SHADING_ARB = 0x8C36
|
||||||
MIN_SAMPLE_SHADING_VALUE = 0x8C37
|
MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# ARB Extension #71
|
# ARB Extension #71
|
||||||
#@@@ Add ARB suffixes here & functions!
|
|
||||||
ARB_texture_cube_map_array enum:
|
ARB_texture_cube_map_array enum:
|
||||||
TEXTURE_CUBE_MAP_ARRAY = 0x9009
|
TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009
|
||||||
TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
|
TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A
|
||||||
PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
|
PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B
|
||||||
SAMPLER_CUBE_MAP_ARRAY = 0x900C
|
SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C
|
||||||
SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
|
SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D
|
||||||
INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
|
INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
|
||||||
UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
|
UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# ARB Extension #72
|
# ARB Extension #72
|
||||||
#@@@ Add ARB suffixes here & functions!
|
|
||||||
ARB_texture_gather enum:
|
ARB_texture_gather enum:
|
||||||
MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
|
MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
|
||||||
MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
|
MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
|
||||||
@@ -2792,7 +2849,7 @@ ARB_gpu_shader5 enum:
|
|||||||
MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
|
MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
|
||||||
MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
|
MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
|
||||||
FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
|
FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
|
||||||
MAX_VERTEX_STREAMS = 0x8E71
|
use ARB_texture_multisample MAX_VERTEX_STREAMS
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -2894,6 +2951,149 @@ ARB_transform_feedback3 enum:
|
|||||||
MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
|
MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
|
||||||
MAX_VERTEX_STREAMS = 0x8E71
|
MAX_VERTEX_STREAMS = 0x8E71
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #95
|
||||||
|
ARB_ES2_compatibility enum:
|
||||||
|
FIXED = 0x140C
|
||||||
|
IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
|
||||||
|
IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
|
||||||
|
LOW_FLOAT = 0x8DF0
|
||||||
|
MEDIUM_FLOAT = 0x8DF1
|
||||||
|
HIGH_FLOAT = 0x8DF2
|
||||||
|
LOW_INT = 0x8DF3
|
||||||
|
MEDIUM_INT = 0x8DF4
|
||||||
|
HIGH_INT = 0x8DF5
|
||||||
|
SHADER_COMPILER = 0x8DFA
|
||||||
|
NUM_SHADER_BINARY_FORMATS = 0x8DF9
|
||||||
|
MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
|
||||||
|
MAX_VARYING_VECTORS = 0x8DFC
|
||||||
|
MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #96
|
||||||
|
ARB_get_program_binary enum:
|
||||||
|
PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
|
||||||
|
PROGRAM_BINARY_LENGTH = 0x8741
|
||||||
|
NUM_PROGRAM_BINARY_FORMATS = 0x87FE
|
||||||
|
PROGRAM_BINARY_FORMATS = 0x87FF
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #97
|
||||||
|
ARB_separate_shader_objects enum:
|
||||||
|
VERTEX_SHADER_BIT = 0x00000001
|
||||||
|
FRAGMENT_SHADER_BIT = 0x00000002
|
||||||
|
GEOMETRY_SHADER_BIT = 0x00000004
|
||||||
|
TESS_CONTROL_SHADER_BIT = 0x00000008
|
||||||
|
TESS_EVALUATION_SHADER_BIT = 0x00000010
|
||||||
|
ALL_SHADER_BITS = 0xFFFFFFFF
|
||||||
|
PROGRAM_SEPARABLE = 0x8258
|
||||||
|
ACTIVE_PROGRAM = 0x8259
|
||||||
|
PROGRAM_PIPELINE_BINDING = 0x825A
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# No new tokens
|
||||||
|
# ARB Extension #98
|
||||||
|
ARB_shader_precision enum:
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #99
|
||||||
|
ARB_vertex_attrib_64bit enum:
|
||||||
|
use VERSION_3_0 RGB32I
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_VEC2
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_VEC3
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_VEC4
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT2
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT3
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT4
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT2x3
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT2x4
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT3x2
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT3x4
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT4x2
|
||||||
|
use ARB_gpu_shader_fp64 DOUBLE_MAT4x3
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #100
|
||||||
|
ARB_viewport_array enum:
|
||||||
|
use VERSION_1_1 SCISSOR_BOX
|
||||||
|
use VERSION_1_1 VIEWPORT
|
||||||
|
use VERSION_1_1 DEPTH_RANGE
|
||||||
|
use VERSION_1_1 SCISSOR_TEST
|
||||||
|
MAX_VIEWPORTS = 0x825B
|
||||||
|
VIEWPORT_SUBPIXEL_BITS = 0x825C
|
||||||
|
VIEWPORT_BOUNDS_RANGE = 0x825D
|
||||||
|
LAYER_PROVOKING_VERTEX = 0x825E
|
||||||
|
VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
|
||||||
|
UNDEFINED_VERTEX = 0x8260
|
||||||
|
use ARB_provoking_vertex FIRST_VERTEX_CONVENTION
|
||||||
|
use ARB_provoking_vertex LAST_VERTEX_CONVENTION
|
||||||
|
use ARB_provoking_vertex PROVOKING_VERTEX
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# No new tokens
|
||||||
|
# ARB Extension #101 - GLX_ARB_create_context_robustness
|
||||||
|
# ARB Extension #102 - WGL_ARB_create_context_robustness
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #103
|
||||||
|
ARB_cl_event enum:
|
||||||
|
SYNC_CL_EVENT_ARB = 0x8240
|
||||||
|
SYNC_CL_EVENT_COMPLETE_ARB = 0x8241
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #104
|
||||||
|
ARB_debug_output enum:
|
||||||
|
DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242
|
||||||
|
DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243
|
||||||
|
DEBUG_CALLBACK_FUNCTION_ARB = 0x8244
|
||||||
|
DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245
|
||||||
|
DEBUG_SOURCE_API_ARB = 0x8246
|
||||||
|
DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247
|
||||||
|
DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248
|
||||||
|
DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249
|
||||||
|
DEBUG_SOURCE_APPLICATION_ARB = 0x824A
|
||||||
|
DEBUG_SOURCE_OTHER_ARB = 0x824B
|
||||||
|
DEBUG_TYPE_ERROR_ARB = 0x824C
|
||||||
|
DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D
|
||||||
|
DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E
|
||||||
|
DEBUG_TYPE_PORTABILITY_ARB = 0x824F
|
||||||
|
DEBUG_TYPE_PERFORMANCE_ARB = 0x8250
|
||||||
|
DEBUG_TYPE_OTHER_ARB = 0x8251
|
||||||
|
MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143
|
||||||
|
MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144
|
||||||
|
DEBUG_LOGGED_MESSAGES_ARB = 0x9145
|
||||||
|
DEBUG_SEVERITY_HIGH_ARB = 0x9146
|
||||||
|
DEBUG_SEVERITY_MEDIUM_ARB = 0x9147
|
||||||
|
DEBUG_SEVERITY_LOW_ARB = 0x9148
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #105
|
||||||
|
ARB_robustness enum:
|
||||||
|
use VERSION_1_1 NO_ERROR
|
||||||
|
CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004
|
||||||
|
LOSE_CONTEXT_ON_RESET_ARB = 0x8252
|
||||||
|
GUILTY_CONTEXT_RESET_ARB = 0x8253
|
||||||
|
INNOCENT_CONTEXT_RESET_ARB = 0x8254
|
||||||
|
UNKNOWN_CONTEXT_RESET_ARB = 0x8255
|
||||||
|
RESET_NOTIFICATION_STRATEGY_ARB = 0x8256
|
||||||
|
NO_RESET_NOTIFICATION_ARB = 0x8261
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# No new tokens
|
||||||
|
# ARB Extension #106
|
||||||
|
ARB_shader_stencil_export enum:
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@@ -5362,11 +5562,10 @@ APPLE_client_storage enum:
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# Extension #271
|
# Extension #271
|
||||||
# (extends ATI_element_array???)
|
|
||||||
APPLE_element_array enum:
|
APPLE_element_array enum:
|
||||||
ELEMENT_ARRAY_APPLE = 0x8768
|
ELEMENT_ARRAY_APPLE = 0x8A0C
|
||||||
ELEMENT_ARRAY_TYPE_APPLE = 0x8769
|
ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D
|
||||||
ELEMENT_ARRAY_POINTER_APPLE = 0x876A
|
ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -5387,12 +5586,12 @@ APPLE_vertex_array_object enum:
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# Extension #274
|
# Extension #274
|
||||||
# (How does this interact with NV_vertex_array_range???)
|
|
||||||
APPLE_vertex_array_range enum:
|
APPLE_vertex_array_range enum:
|
||||||
VERTEX_ARRAY_RANGE_APPLE = 0x851D
|
VERTEX_ARRAY_RANGE_APPLE = 0x851D
|
||||||
VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E
|
VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E
|
||||||
VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F
|
VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F
|
||||||
VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521
|
VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521
|
||||||
|
STORAGE_CLIENT_APPLE = 0x85B4
|
||||||
STORAGE_CACHED_APPLE = 0x85BE
|
STORAGE_CACHED_APPLE = 0x85BE
|
||||||
STORAGE_SHARED_APPLE = 0x85BF
|
STORAGE_SHARED_APPLE = 0x85BF
|
||||||
|
|
||||||
@@ -6083,6 +6282,12 @@ NV_transform_feedback enum:
|
|||||||
SEPARATE_ATTRIBS_NV = 0x8C8D
|
SEPARATE_ATTRIBS_NV = 0x8C8D
|
||||||
TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E
|
TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E
|
||||||
TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F
|
TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F
|
||||||
|
LAYER_NV = 0x8DAA
|
||||||
|
NEXT_BUFFER_NV = -2 # Requires ARB_transform_feedback3
|
||||||
|
SKIP_COMPONENTS4_NV = -3 # Requires ARB_transform_feedback3
|
||||||
|
SKIP_COMPONENTS3_NV = -4 # Requires ARB_transform_feedback3
|
||||||
|
SKIP_COMPONENTS2_NV = -5 # Requires ARB_transform_feedback3
|
||||||
|
SKIP_COMPONENTS1_NV = -6 # Requires ARB_transform_feedback3
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -6511,6 +6716,9 @@ NV_vertex_buffer_unified_memory enum:
|
|||||||
SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31
|
SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31
|
||||||
FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
|
FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
|
||||||
ELEMENT_ARRAY_LENGTH_NV = 0x8F33
|
ELEMENT_ARRAY_LENGTH_NV = 0x8F33
|
||||||
|
DRAW_INDIRECT_UNIFIED_NV = 0x8F40 # Requires ARB_draw_indirect
|
||||||
|
DRAW_INDIRECT_ADDRESS_NV = 0x8F41 # Requires ARB_draw_indirect
|
||||||
|
DRAW_INDIRECT_LENGTH_NV = 0x8F42 # Requires ARB_draw_indirect
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -6528,7 +6736,7 @@ AMD_shader_stencil_export enum:
|
|||||||
|
|
||||||
# Extension #383
|
# Extension #383
|
||||||
AMD_seamless_cubemap_per_texture enum:
|
AMD_seamless_cubemap_per_texture enum:
|
||||||
use ARB_seamless_cube_map TEXTURE_CUBE_MAP_SEAMLESS_ARB
|
use ARB_seamless_cube_map TEXTURE_CUBE_MAP_SEAMLESS
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -6540,3 +6748,246 @@ AMD_seamless_cubemap_per_texture enum:
|
|||||||
# Extension #385
|
# Extension #385
|
||||||
AMD_conservative_depth enum:
|
AMD_conservative_depth enum:
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #386
|
||||||
|
EXT_shader_image_load_store enum:
|
||||||
|
MAX_IMAGE_UNITS_EXT = 0x8F38
|
||||||
|
MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39
|
||||||
|
IMAGE_BINDING_NAME_EXT = 0x8F3A
|
||||||
|
IMAGE_BINDING_LEVEL_EXT = 0x8F3B
|
||||||
|
IMAGE_BINDING_LAYERED_EXT = 0x8F3C
|
||||||
|
IMAGE_BINDING_LAYER_EXT = 0x8F3D
|
||||||
|
IMAGE_BINDING_ACCESS_EXT = 0x8F3E
|
||||||
|
IMAGE_1D_EXT = 0x904C
|
||||||
|
IMAGE_2D_EXT = 0x904D
|
||||||
|
IMAGE_3D_EXT = 0x904E
|
||||||
|
IMAGE_2D_RECT_EXT = 0x904F
|
||||||
|
IMAGE_CUBE_EXT = 0x9050
|
||||||
|
IMAGE_BUFFER_EXT = 0x9051
|
||||||
|
IMAGE_1D_ARRAY_EXT = 0x9052
|
||||||
|
IMAGE_2D_ARRAY_EXT = 0x9053
|
||||||
|
IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
|
||||||
|
IMAGE_2D_MULTISAMPLE_EXT = 0x9055
|
||||||
|
IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056
|
||||||
|
INT_IMAGE_1D_EXT = 0x9057
|
||||||
|
INT_IMAGE_2D_EXT = 0x9058
|
||||||
|
INT_IMAGE_3D_EXT = 0x9059
|
||||||
|
INT_IMAGE_2D_RECT_EXT = 0x905A
|
||||||
|
INT_IMAGE_CUBE_EXT = 0x905B
|
||||||
|
INT_IMAGE_BUFFER_EXT = 0x905C
|
||||||
|
INT_IMAGE_1D_ARRAY_EXT = 0x905D
|
||||||
|
INT_IMAGE_2D_ARRAY_EXT = 0x905E
|
||||||
|
INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
|
||||||
|
INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060
|
||||||
|
INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061
|
||||||
|
UNSIGNED_INT_IMAGE_1D_EXT = 0x9062
|
||||||
|
UNSIGNED_INT_IMAGE_2D_EXT = 0x9063
|
||||||
|
UNSIGNED_INT_IMAGE_3D_EXT = 0x9064
|
||||||
|
UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065
|
||||||
|
UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066
|
||||||
|
UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
|
||||||
|
UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068
|
||||||
|
UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069
|
||||||
|
UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
|
||||||
|
UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B
|
||||||
|
UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C
|
||||||
|
MAX_IMAGE_SAMPLES_EXT = 0x906D
|
||||||
|
IMAGE_BINDING_FORMAT_EXT = 0x906E
|
||||||
|
# ??? Not clear where to put new types of mask bits yet
|
||||||
|
VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001
|
||||||
|
ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002
|
||||||
|
UNIFORM_BARRIER_BIT_EXT = 0x00000004
|
||||||
|
TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008
|
||||||
|
SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020
|
||||||
|
COMMAND_BARRIER_BIT_EXT = 0x00000040
|
||||||
|
PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080
|
||||||
|
TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100
|
||||||
|
BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200
|
||||||
|
FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400
|
||||||
|
TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800
|
||||||
|
ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000
|
||||||
|
ALL_BARRIER_BITS_EXT = 0xFFFFFFFF
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #387
|
||||||
|
EXT_vertex_attrib_64bit enum:
|
||||||
|
use VERSION_1_1 DOUBLE
|
||||||
|
DOUBLE_VEC2_EXT = 0x8FFC
|
||||||
|
DOUBLE_VEC3_EXT = 0x8FFD
|
||||||
|
DOUBLE_VEC4_EXT = 0x8FFE
|
||||||
|
DOUBLE_MAT2_EXT = 0x8F46
|
||||||
|
DOUBLE_MAT3_EXT = 0x8F47
|
||||||
|
DOUBLE_MAT4_EXT = 0x8F48
|
||||||
|
DOUBLE_MAT2x3_EXT = 0x8F49
|
||||||
|
DOUBLE_MAT2x4_EXT = 0x8F4A
|
||||||
|
DOUBLE_MAT3x2_EXT = 0x8F4B
|
||||||
|
DOUBLE_MAT3x4_EXT = 0x8F4C
|
||||||
|
DOUBLE_MAT4x2_EXT = 0x8F4D
|
||||||
|
DOUBLE_MAT4x3_EXT = 0x8F4E
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #388
|
||||||
|
NV_gpu_program5 enum:
|
||||||
|
MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A
|
||||||
|
MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B
|
||||||
|
MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C
|
||||||
|
FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D
|
||||||
|
MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E
|
||||||
|
MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F
|
||||||
|
MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44 # Requires ARB_shader_subroutine
|
||||||
|
MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45 # Requires ARB_shader_subroutine
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #389
|
||||||
|
NV_gpu_shader5 enum:
|
||||||
|
INT64_NV = 0x140E
|
||||||
|
UNSIGNED_INT64_NV = 0x140F
|
||||||
|
INT8_NV = 0x8FE0
|
||||||
|
INT8_VEC2_NV = 0x8FE1
|
||||||
|
INT8_VEC3_NV = 0x8FE2
|
||||||
|
INT8_VEC4_NV = 0x8FE3
|
||||||
|
INT16_NV = 0x8FE4
|
||||||
|
INT16_VEC2_NV = 0x8FE5
|
||||||
|
INT16_VEC3_NV = 0x8FE6
|
||||||
|
INT16_VEC4_NV = 0x8FE7
|
||||||
|
INT64_VEC2_NV = 0x8FE9
|
||||||
|
INT64_VEC3_NV = 0x8FEA
|
||||||
|
INT64_VEC4_NV = 0x8FEB
|
||||||
|
UNSIGNED_INT8_NV = 0x8FEC
|
||||||
|
UNSIGNED_INT8_VEC2_NV = 0x8FED
|
||||||
|
UNSIGNED_INT8_VEC3_NV = 0x8FEE
|
||||||
|
UNSIGNED_INT8_VEC4_NV = 0x8FEF
|
||||||
|
UNSIGNED_INT16_NV = 0x8FF0
|
||||||
|
UNSIGNED_INT16_VEC2_NV = 0x8FF1
|
||||||
|
UNSIGNED_INT16_VEC3_NV = 0x8FF2
|
||||||
|
UNSIGNED_INT16_VEC4_NV = 0x8FF3
|
||||||
|
UNSIGNED_INT64_VEC2_NV = 0x8FF5
|
||||||
|
UNSIGNED_INT64_VEC3_NV = 0x8FF6
|
||||||
|
UNSIGNED_INT64_VEC4_NV = 0x8FF7
|
||||||
|
FLOAT16_NV = 0x8FF8
|
||||||
|
FLOAT16_VEC2_NV = 0x8FF9
|
||||||
|
FLOAT16_VEC3_NV = 0x8FFA
|
||||||
|
FLOAT16_VEC4_NV = 0x8FFB
|
||||||
|
use ARB_tessellation_shader PATCHES
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #390
|
||||||
|
NV_shader_buffer_store enum:
|
||||||
|
SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010
|
||||||
|
use VERSION_1_5 READ_WRITE
|
||||||
|
use VERSION_1_5 WRITE_ONLY
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #391
|
||||||
|
NV_tessellation_program5 enum:
|
||||||
|
MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8
|
||||||
|
TESS_CONTROL_PROGRAM_NV = 0x891E
|
||||||
|
TESS_EVALUATION_PROGRAM_NV = 0x891F
|
||||||
|
TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74
|
||||||
|
TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #392
|
||||||
|
NV_vertex_attrib_integer_64bit enum:
|
||||||
|
use NV_gpu_shader5 INT64_NV
|
||||||
|
use NV_gpu_shader5 UNSIGNED_INT64_NV
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #393
|
||||||
|
# Reuses SAMPLES enum as COVERAGE_SAMPLES
|
||||||
|
NV_multisample_coverage enum:
|
||||||
|
COVERAGE_SAMPLES_NV = 0x80A9
|
||||||
|
COLOR_SAMPLES_NV = 0x8E20
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #394
|
||||||
|
AMD_name_gen_delete enum:
|
||||||
|
DATA_BUFFER_AMD = 0x9151
|
||||||
|
PERFORMANCE_MONITOR_AMD = 0x9152
|
||||||
|
QUERY_OBJECT_AMD = 0x9153
|
||||||
|
VERTEX_ARRAY_OBJECT_AMD = 0x9154
|
||||||
|
SAMPLER_OBJECT_AMD = 0x9155
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #395
|
||||||
|
AMD_debug_output enum:
|
||||||
|
MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144
|
||||||
|
DEBUG_LOGGED_MESSAGES_AMD = 0x9145
|
||||||
|
DEBUG_SEVERITY_HIGH_AMD = 0x9146
|
||||||
|
DEBUG_SEVERITY_MEDIUM_AMD = 0x9147
|
||||||
|
DEBUG_SEVERITY_LOW_AMD = 0x9148
|
||||||
|
DEBUG_CATEGORY_API_ERROR_AMD = 0x9149
|
||||||
|
DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A
|
||||||
|
DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B
|
||||||
|
DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C
|
||||||
|
DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D
|
||||||
|
DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E
|
||||||
|
DEBUG_CATEGORY_APPLICATION_AMD = 0x914F
|
||||||
|
DEBUG_CATEGORY_OTHER_AMD = 0x9150
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #396
|
||||||
|
NV_vdpau_interop enum:
|
||||||
|
SURFACE_STATE_NV = 0x86EB
|
||||||
|
SURFACE_REGISTERED_NV = 0x86FD
|
||||||
|
SURFACE_MAPPED_NV = 0x8700
|
||||||
|
WRITE_DISCARD_NV = 0x88BE
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# No new tokens
|
||||||
|
# Extension #397
|
||||||
|
AMD_transform_feedback3_lines_triangles enum:
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #398 - GLX_AMD_gpu_association
|
||||||
|
# Extension #399 - GLX_EXT_create_context_es2_profile
|
||||||
|
# Extension #400 - WGL_EXT_create_context_es2_profile
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #401
|
||||||
|
AMD_depth_clamp_separate enum:
|
||||||
|
DEPTH_CLAMP_NEAR_AMD = 0x901E
|
||||||
|
DEPTH_CLAMP_FAR_AMD = 0x901F
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #402
|
||||||
|
EXT_texture_sRGB_decode enum:
|
||||||
|
TEXTURE_SRGB_DECODE_EXT = 0x8A48
|
||||||
|
DECODE_EXT = 0x8A49
|
||||||
|
SKIP_DECODE_EXT = 0x8A4A
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #403
|
||||||
|
NV_texture_multisample enum:
|
||||||
|
TEXTURE_COVERAGE_SAMPLES_NV = 0x9045
|
||||||
|
TEXTURE_COLOR_SAMPLES_NV = 0x9046
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #404
|
||||||
|
AMD_blend_minmax_factor enum:
|
||||||
|
FACTOR_MIN_AMD = 0x901C
|
||||||
|
FACTOR_MAX_AMD = 0x901D
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #505
|
||||||
|
#AMD_sample_positions enum:
|
||||||
|
# SUBSAMPLE_DISTANCE_AMD = 0x883F
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -297,17 +297,14 @@ sync,*,*, GLsync,*,*,
|
|||||||
Int64EXT,*,*, GLint64EXT,*,*
|
Int64EXT,*,*, GLint64EXT,*,*
|
||||||
UInt64EXT,*,*, GLuint64EXT,*,*
|
UInt64EXT,*,*, GLuint64EXT,*,*
|
||||||
# EXT_direct_state_access
|
# EXT_direct_state_access
|
||||||
FramebufferAttachment,*,*, GLenum,*,*
|
|
||||||
FramebufferAttachmentParameterName,*,*, GLenum,*,*
|
FramebufferAttachmentParameterName,*,*, GLenum,*,*
|
||||||
Framebuffer,*,*, GLuint,*,*
|
Framebuffer,*,*, GLuint,*,*
|
||||||
FramebufferStatus,*,*, GLenum,*,*
|
FramebufferStatus,*,*, GLenum,*,*
|
||||||
FramebufferTarget,*,*, GLenum,*,*
|
|
||||||
GetFramebufferParameter,*,*, GLenum,*,*
|
GetFramebufferParameter,*,*, GLenum,*,*
|
||||||
Intptr,*,*, GLintptr,*,*
|
Intptr,*,*, GLintptr,*,*
|
||||||
ProgramFormat,*,*, GLenum,*,*
|
ProgramFormat,*,*, GLenum,*,*
|
||||||
ProgramProperty,*,*, GLenum,*,*
|
ProgramProperty,*,*, GLenum,*,*
|
||||||
ProgramStringProperty,*,*, GLenum,*,*
|
ProgramStringProperty,*,*, GLenum,*,*
|
||||||
ProgramTarget,*,*, GLenum,*,*
|
|
||||||
Renderbuffer,*,*, GLuint,*,*
|
Renderbuffer,*,*, GLuint,*,*
|
||||||
RenderbufferParameterName,*,*, GLenum,*,*
|
RenderbufferParameterName,*,*, GLenum,*,*
|
||||||
Sizeiptr,*,*, GLsizeiptr,*,*
|
Sizeiptr,*,*, GLsizeiptr,*,*
|
||||||
@@ -320,3 +317,12 @@ BufferAccessMask,*,*, GLbitfield,*,*
|
|||||||
# NV_explicit_multisample
|
# NV_explicit_multisample
|
||||||
GetMultisamplePNameNV,*,*, GLenum,*,*
|
GetMultisamplePNameNV,*,*, GLenum,*,*
|
||||||
SampleMaskNV,*,*, GLbitfield,*,*
|
SampleMaskNV,*,*, GLbitfield,*,*
|
||||||
|
# ARB_debug_output
|
||||||
|
GLDEBUGPROCARB,*,*, GLDEBUGPROCARB,*,*
|
||||||
|
# AMD_debug_output
|
||||||
|
GLDEBUGPROCAMD,*,*, GLDEBUGPROCAMD,*,*
|
||||||
|
# NV_vdpau_interop
|
||||||
|
vdpauSurfaceNV,*,*, GLvdpauSurfaceNV,*,*,
|
||||||
|
# External API types
|
||||||
|
cl_context,*,*, struct _cl_context *,*,*
|
||||||
|
cl_event,*,*, struct _cl_event *,*,*
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
# This document is licensed under the SGI Free Software B License Version
|
# This document is licensed under the SGI Free Software B License Version
|
||||||
# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
||||||
#
|
#
|
||||||
# $Revision: 10796 $ on $Date: 2010-03-19 17:31:10 -0700 (Fri, 19 Mar 2010) $
|
# $Revision: 12183 $ on $Date: 2010-08-06 02:53:05 -0700 (Fri, 06 Aug 2010) $
|
||||||
|
|
||||||
# This is the GLX enumerant registry.
|
# This is the GLX enumerant registry.
|
||||||
#
|
#
|
||||||
@@ -126,15 +126,17 @@ GLXBindToTextureTargetMask enum:
|
|||||||
TEXTURE_2D_BIT_EXT = 0x00000002
|
TEXTURE_2D_BIT_EXT = 0x00000002
|
||||||
TEXTURE_RECTANGLE_BIT_EXT = 0x00000004
|
TEXTURE_RECTANGLE_BIT_EXT = 0x00000004
|
||||||
|
|
||||||
# CONTEXT_FLAGS_ARB bits
|
# CONTEXT_FLAGS_ARB bits (shared with WGL and GL)
|
||||||
GLXContextFlags enum:
|
GLXContextFlags enum:
|
||||||
CONTEXT_DEBUG_BIT_ARB = 0x00000001 # ARB_create_context
|
CONTEXT_DEBUG_BIT_ARB = 0x00000001 # ARB_create_context
|
||||||
CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002 # ARB_create_context
|
CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002 # ARB_create_context
|
||||||
|
CONTEXT_ROBUST_ACCESS_BIT_ARB = 0x00000004 # ARB_create_context_robustness
|
||||||
|
|
||||||
# CONTEXT_PROFILE_MASK_ARB bits
|
# CONTEXT_PROFILE_MASK_ARB bits
|
||||||
GLXContextProfileMask enum:
|
GLXContextProfileMask enum:
|
||||||
CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001 # ARB_create_context_profile
|
CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001 # ARB_create_context_profile
|
||||||
CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002 # ARB_create_context_profile
|
CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002 # ARB_create_context_profile
|
||||||
|
CONTEXT_ES2_PROFILE_BIT_EXT = 0x00000004 # EXT_create_context_es2_profile
|
||||||
|
|
||||||
GLXAttribute enum:
|
GLXAttribute enum:
|
||||||
USE_GL = 1 # Visual attributes
|
USE_GL = 1 # Visual attributes
|
||||||
@@ -250,16 +252,29 @@ GLXAttribute enum:
|
|||||||
SAMPLES_ARB = 100001 # "
|
SAMPLES_ARB = 100001 # "
|
||||||
SAMPLE_BUFFERS = 100000 # Visual attribute (GLX 1.4 core - alias of SGIS_multisample)
|
SAMPLE_BUFFERS = 100000 # Visual attribute (GLX 1.4 core - alias of SGIS_multisample)
|
||||||
SAMPLES = 100001 # "
|
SAMPLES = 100001 # "
|
||||||
|
COVERAGE_SAMPLES_NV = 100001 # Visual attribute (NV_multisample_coverage - reuse SAMPLES_ARB)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# ARB: 0x2070-0x209F (shared with WGL)
|
# AMD: 0x1F00-0x1F02 (additional; see below; equivalent to corresponding WGL/GL tokens)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB: 0x2070-0x209F
|
||||||
|
|
||||||
|
# Shared with WGL, synchronize create_context_* enums with wglenum.spec!
|
||||||
|
|
||||||
# Also includes a bitmask - see ContextFlags above
|
# Also includes a bitmask - see ContextFlags above
|
||||||
# ARB_create_context enum:
|
# ARB_create_context enum:
|
||||||
CONTEXT_MAJOR_VERSION_ARB = 0x2091
|
CONTEXT_MAJOR_VERSION_ARB = 0x2091
|
||||||
CONTEXT_MINOR_VERSION_ARB = 0x2092
|
CONTEXT_MINOR_VERSION_ARB = 0x2092
|
||||||
|
# 0x2093 used for WGL_CONTEXT_LAYER_PLANE_ARB
|
||||||
CONTEXT_FLAGS_ARB = 0x2094
|
CONTEXT_FLAGS_ARB = 0x2094
|
||||||
|
# 0x2095 collides with WGL_ERROR_INVALID_VERSION_ARB!
|
||||||
|
CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = 0x2095
|
||||||
|
# 0x2096 used for WGL_ERROR_INVALID_PROFILE_ARB
|
||||||
|
|
||||||
|
# ARB_future_use: 0x2097-0x209F
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
@@ -269,10 +284,14 @@ GLXAttribute enum:
|
|||||||
FLOAT_COMPONENTS_NV = 0x20B0
|
FLOAT_COMPONENTS_NV = 0x20B0
|
||||||
# EXT_fbconfig_packed_float enum:
|
# EXT_fbconfig_packed_float enum:
|
||||||
RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1
|
RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1
|
||||||
|
# ARB_framebuffer_sRGB enum:
|
||||||
|
FRAMEBUFFER_SRGB_CAPABLE_ARB = 0x20B2
|
||||||
# EXT_framebuffer_sRGB enum:
|
# EXT_framebuffer_sRGB enum:
|
||||||
FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20B2
|
FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20B2
|
||||||
|
# NV_multisample_coverage enum:
|
||||||
|
COLOR_SAMPLES_NV = 0x20B3
|
||||||
|
|
||||||
# NV_future_use: 0x20B3-0x20B8
|
# NV_future_use: 0x20B4-0x20B8
|
||||||
|
|
||||||
# ARB_fbconfig_float enum:
|
# ARB_fbconfig_float enum:
|
||||||
RGBA_FLOAT_TYPE_ARB = 0x20B9
|
RGBA_FLOAT_TYPE_ARB = 0x20B9
|
||||||
@@ -341,6 +360,28 @@ EXT_swap_control enum:
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
# AMD: 0x21A0-0x21AF
|
||||||
|
|
||||||
|
# Shared with WGL, synchronize with wglenum.spec!
|
||||||
|
|
||||||
|
# WGL extensions: 0x21A0-0x21A1
|
||||||
|
|
||||||
|
GLX_AMD_gpu_association enum:
|
||||||
|
GPU_VENDOR_AMD = 0x1F00
|
||||||
|
GPU_RENDERER_STRING_AMD = 0x1F01
|
||||||
|
GPU_OPENGL_VERSION_STRING_AMD = 0x1F02
|
||||||
|
GPU_FASTEST_TARGET_GPUS_AMD = 0x21A2
|
||||||
|
GPU_RAM_AMD = 0x21A3
|
||||||
|
GPU_CLOCK_AMD = 0x21A4
|
||||||
|
GPU_NUM_PIPES_AMD = 0x21A5
|
||||||
|
GPU_NUM_SIMD_AMD = 0x21A6
|
||||||
|
GPU_NUM_RB_AMD = 0x21A7
|
||||||
|
GPU_NUM_SPI_AMD = 0x21A8
|
||||||
|
|
||||||
|
# AMD_future_use: 0x21A9-0x21AF
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
# MESA (not in a reserved block)
|
# MESA (not in a reserved block)
|
||||||
|
|
||||||
# MESA_set_3dfx_mode enum:
|
# MESA_set_3dfx_mode enum:
|
||||||
@@ -404,17 +445,35 @@ INTEL_future_use: 0x8183-0x818F
|
|||||||
### Please remember that new GLX enum allocations must be obtained by request
|
### Please remember that new GLX enum allocations must be obtained by request
|
||||||
### to the Khronos API Registrar (see comments at the top of this file)
|
### to the Khronos API Registrar (see comments at the top of this file)
|
||||||
### File requests in the Khronos Bugzilla, OpenGL project, Registry component.
|
### File requests in the Khronos Bugzilla, OpenGL project, Registry component.
|
||||||
|
### Also note that some GLX enum values are shared with GL and WGL, and
|
||||||
|
### new ranges should be allocated with such overlaps in mind.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# Any_vendor_future_use: 0x8180-0x9125
|
# Any_vendor_future_use: 0x8190-0x824F
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB: 0x8250-0x826F
|
||||||
|
# No additional values should be used from this range, which includes
|
||||||
|
# the range used by GL_ARB_robustness rounded up to multiples of 16.
|
||||||
|
|
||||||
|
# Also includes a bitmask - see ContextFlags above
|
||||||
|
# All values are shared with GLX and GL
|
||||||
|
GLX_ARB_create_context_robustness enum:
|
||||||
|
LOSE_CONTEXT_ON_RESET_ARB = 0x8252 # shared with GL_ARB_robustness
|
||||||
|
CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256 # shared with GL_ARB_robustness
|
||||||
|
NO_RESET_NOTIFICATION_ARB = 0x8261 # shared with GL_ARB_robustness
|
||||||
|
|
||||||
|
# Any_vendor_future_use: 0x8270-0x9125
|
||||||
|
|
||||||
# Also includes a bitmask - see ContextProfileMask above
|
# Also includes a bitmask - see ContextProfileMask above
|
||||||
# ARB_create_context_profile enum: (equivalent to corresponding GL token)
|
# All values are shared with GLX and GL
|
||||||
|
ARB_create_context_profile enum:
|
||||||
CONTEXT_PROFILE_MASK_ARB = 0x9126
|
CONTEXT_PROFILE_MASK_ARB = 0x9126
|
||||||
|
|
||||||
# Any_vendor_future_use: 0x9127-0xFFFF
|
# Any_vendor_future_use: 0x9127-0xFFFF
|
||||||
#
|
#
|
||||||
# This range must be the last range in the file. To generate a new
|
# This range must be the last range in the file. To generate a new
|
||||||
# range, allocate multiples of 16 from the beginning of the
|
# range, allocate multiples of 16 from the beginning of the first
|
||||||
# Any_vendor_future_use range and update glxenum.spec, glxenumext.spec,
|
# Any_vendor_future_use range and update glxenum.spec, glxenumext.spec,
|
||||||
# and extensions.reserved.
|
# and extensions.reserved.
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
# This document is licensed under the SGI Free Software B License Version
|
# This document is licensed under the SGI Free Software B License Version
|
||||||
# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
||||||
#
|
#
|
||||||
# $Revision: 10796 $ on $Date: 2010-03-19 17:31:10 -0700 (Fri, 19 Mar 2010) $
|
# $Revision: 12183 $ on $Date: 2010-08-06 02:53:05 -0700 (Fri, 06 Aug 2010) $
|
||||||
|
|
||||||
# List of GLX enumerants for glxext.h header
|
# List of GLX enumerants for glxext.h header
|
||||||
#
|
#
|
||||||
@@ -25,9 +25,9 @@
|
|||||||
|
|
||||||
passthru:
|
passthru:
|
||||||
passthru: /* Header file version number, required by OpenGL ABI for Linux */
|
passthru: /* Header file version number, required by OpenGL ABI for Linux */
|
||||||
passthru: /* glxext.h last updated 2010/02/10 */
|
passthru: /* glxext.h last updated 2010/08/06 */
|
||||||
passthru: /* Current version at http://www.opengl.org/registry/ */
|
passthru: /* Current version at http://www.opengl.org/registry/ */
|
||||||
passthru: #define GLX_GLXEXT_VERSION 27
|
passthru: #define GLX_GLXEXT_VERSION 32
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@@ -124,6 +124,12 @@ ARB_multisample enum:
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #28
|
||||||
|
ARB_vertex_buffer_object enum:
|
||||||
|
CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = 0x2095
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
# ARB Extension #39
|
# ARB Extension #39
|
||||||
ARB_fbconfig_float enum:
|
ARB_fbconfig_float enum:
|
||||||
RGBA_FLOAT_TYPE_ARB = 0x20B9
|
RGBA_FLOAT_TYPE_ARB = 0x20B9
|
||||||
@@ -131,6 +137,12 @@ ARB_fbconfig_float enum:
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #46
|
||||||
|
ARB_framebuffer_sRGB enum:
|
||||||
|
FRAMEBUFFER_SRGB_CAPABLE_ARB = 0x20B2
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
# ARB Extension #56
|
# ARB Extension #56
|
||||||
ARB_create_context enum:
|
ARB_create_context enum:
|
||||||
CONTEXT_DEBUG_BIT_ARB = 0x00000001
|
CONTEXT_DEBUG_BIT_ARB = 0x00000001
|
||||||
@@ -147,6 +159,15 @@ ARB_create_context_profile enum:
|
|||||||
CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002
|
CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002
|
||||||
CONTEXT_PROFILE_MASK_ARB = 0x9126
|
CONTEXT_PROFILE_MASK_ARB = 0x9126
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# ARB Extension #101
|
||||||
|
# All values are shared with GLX and GL
|
||||||
|
ARB_create_context_robustness enum:
|
||||||
|
CONTEXT_ROBUST_ACCESS_BIT_ARB = 0x00000004
|
||||||
|
LOSE_CONTEXT_ON_RESET_ARB = 0x8252
|
||||||
|
CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256
|
||||||
|
NO_RESET_NOTIFICATION_ARB = 0x8261
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@@ -513,3 +534,32 @@ INTEL_swap_event enum:
|
|||||||
EXCHANGE_COMPLETE_INTEL = 0x8180
|
EXCHANGE_COMPLETE_INTEL = 0x8180
|
||||||
COPY_COMPLETE_INTEL = 0x8181
|
COPY_COMPLETE_INTEL = 0x8181
|
||||||
FLIP_COMPLETE_INTEL = 0x8182
|
FLIP_COMPLETE_INTEL = 0x8182
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #393
|
||||||
|
NV_multisample_coverage enum:
|
||||||
|
COVERAGE_SAMPLES_NV = 100001
|
||||||
|
COLOR_SAMPLES_NV = 0x20B3
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #398
|
||||||
|
AMD_gpu_association enum:
|
||||||
|
GPU_VENDOR_AMD = 0x1F00
|
||||||
|
GPU_RENDERER_STRING_AMD = 0x1F01
|
||||||
|
GPU_OPENGL_VERSION_STRING_AMD = 0x1F02
|
||||||
|
GPU_FASTEST_TARGET_GPUS_AMD = 0x21A2
|
||||||
|
GPU_RAM_AMD = 0x21A3
|
||||||
|
GPU_CLOCK_AMD = 0x21A4
|
||||||
|
GPU_NUM_PIPES_AMD = 0x21A5
|
||||||
|
GPU_NUM_SIMD_AMD = 0x21A6
|
||||||
|
GPU_NUM_RB_AMD = 0x21A7
|
||||||
|
GPU_NUM_SPI_AMD = 0x21A8
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Extension #399
|
||||||
|
# All values are shared with WGL and GL
|
||||||
|
EXT_create_context_es2_profile enum:
|
||||||
|
CONTEXT_ES2_PROFILE_BIT_EXT = 0x00000004
|
||||||
|
@@ -7,14 +7,14 @@
|
|||||||
# This document is licensed under the SGI Free Software B License Version
|
# This document is licensed under the SGI Free Software B License Version
|
||||||
# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
# 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
||||||
#
|
#
|
||||||
# $Revision: 10796 $ on $Date: 2010-03-19 17:31:10 -0700 (Fri, 19 Mar 2010) $
|
# $Revision: 12183 $ on $Date: 2010-08-06 02:53:05 -0700 (Fri, 06 Aug 2010) $
|
||||||
|
|
||||||
required-props:
|
required-props:
|
||||||
param: retval retained
|
param: retval retained
|
||||||
glxflags: client-handcode client-intercept server-handcode
|
glxflags: client-handcode client-intercept server-handcode
|
||||||
glxvendorglx: *
|
glxvendorglx: *
|
||||||
vectorequiv: *
|
vectorequiv: *
|
||||||
category: VERSION_1_3 VERSION_1_4 ARB_get_proc_address ARB_multisample ARB_fbconfig_float EXT_import_context SGIX_dmbuffer SGIX_fbconfig SGIX_pbuffer SGIX_swap_barrier SGIX_swap_group SGIX_video_resize SGIX_video_source SGI_cushion SGI_make_current_read SGI_swap_control SGI_video_sync SUN_get_transparent_index MESA_agp_offset MESA_copy_sub_buffer MESA_pixmap_colormap MESA_release_buffers MESA_set_3dfx_mode SGIX_visual_select_group OML_sync_control SGIX_hyperpipe EXT_texture_from_pixmap NV_swap_group NV_video_output NV_present_video ARB_create_context NV_video_capture NV_copy_image EXT_swap_control
|
category: VERSION_1_3 VERSION_1_4 ARB_get_proc_address ARB_multisample ARB_fbconfig_float EXT_import_context SGIX_dmbuffer SGIX_fbconfig SGIX_pbuffer SGIX_swap_barrier SGIX_swap_group SGIX_video_resize SGIX_video_source SGI_cushion SGI_make_current_read SGI_swap_control SGI_video_sync SUN_get_transparent_index MESA_agp_offset MESA_copy_sub_buffer MESA_pixmap_colormap MESA_release_buffers MESA_set_3dfx_mode SGIX_visual_select_group OML_sync_control SGIX_hyperpipe EXT_texture_from_pixmap NV_swap_group NV_video_output NV_present_video ARB_create_context NV_video_capture NV_copy_image EXT_swap_control ARB_framebuffer_sRGB
|
||||||
glxopcode: *
|
glxopcode: *
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -312,6 +312,16 @@ newcategory: ARB_multisample
|
|||||||
# (none)
|
# (none)
|
||||||
newcategory: ARB_fbconfig_float
|
newcategory: ARB_fbconfig_float
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# ARB Extension #46
|
||||||
|
# ARB_framebuffer_sRGB commands
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# (none)
|
||||||
|
newcategory: ARB_framebuffer_sRGB
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
# ARB Extension #56
|
# ARB Extension #56
|
||||||
@@ -340,6 +350,16 @@ CreateContextAttribsARB(dpy, config, share_context, direct, attrib_list)
|
|||||||
# (none)
|
# (none)
|
||||||
newcategory: ARB_create_context_profile
|
newcategory: ARB_create_context_profile
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# ARB Extension #101
|
||||||
|
# ARB_create_context_robustness commands
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# (none)
|
||||||
|
newcategory: ARB_create_context_robustness
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@@ -1328,3 +1348,145 @@ CopyImageSubDataNV(dpy, srcCtx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ,
|
|||||||
|
|
||||||
# (none)
|
# (none)
|
||||||
newcategory: INTEL_swap_event
|
newcategory: INTEL_swap_event
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# Extension #393
|
||||||
|
# NV_multisample_coverage commands
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# (none)
|
||||||
|
newcategory: NV_multisample_coverage
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# Extension #399
|
||||||
|
# AMD_gpu_association commands
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# These are a weird mishmash of X and Windows types - are they correct?
|
||||||
|
# Leave out of glxext.h for the time being.
|
||||||
|
|
||||||
|
#@ UINT glXGetGPUIDsAMD(UINT maxCount, UINT *ids);
|
||||||
|
#@ INT glXGetGPUInfoAMD(UINT id, INT property, GLenum dataType,
|
||||||
|
#@ UINT size, void *data)
|
||||||
|
#@ UINT glXGetContextGPUIDAMD(GLXContext ctx);
|
||||||
|
#@ HGLRC glXCreateAssociatedContextAMD(UINT id, GLXContext share_list);
|
||||||
|
#@ HGLRC glXCreateAssociatedContextAttribsAMD(UINT id, GLXContext share_context,
|
||||||
|
#@ const int *attribList);
|
||||||
|
#@ BOOL glXDeleteAssociatedContextAMD(GLXContext ctx);
|
||||||
|
#@ BOOL glXMakeAssociatedContextCurrentAMD(GLXContext ctx);
|
||||||
|
#@ HGLRC glXGetCurrentAssociatedContextAMD(void);
|
||||||
|
#@ VOID glXBlitContextFramebufferAMD(GLXContext dstCtx, GLint srcX0, GLint srcY0,
|
||||||
|
#@ GLint srcX1, GLint srcY1, GLint dstX0,
|
||||||
|
#@ GLint dstY0, GLint dstX1, GLint dstY1,
|
||||||
|
#@ GLbitfield mask, GLenum filter);
|
||||||
|
|
||||||
|
#@ glXGetGPUIDsAMD(maxCount, ids)
|
||||||
|
#@ return UINT
|
||||||
|
#@ param maxCount UINT in value
|
||||||
|
#@ param ids UINT in array [???]
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXGetGPUInfoAMD(id, property, dataType, size, data)
|
||||||
|
#@ return INT
|
||||||
|
#@ param id UINT in value
|
||||||
|
#@ param property INT in value
|
||||||
|
#@ param dataType GLenum in value
|
||||||
|
#@ param size UINT in value
|
||||||
|
#@ param data void in array [???]
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXGetContextGPUIDAMD(ctx)
|
||||||
|
#@ return UINT
|
||||||
|
#@ param ctx GLXContext in value
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXCreateAssociatedContextAMD(id, share_list)
|
||||||
|
#@ return HGLRC
|
||||||
|
#@ param id UINT in value
|
||||||
|
#@ param share_list GLXContext in value
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXCreateAssociatedContextAttribsAMD(id, share_context, attribList)
|
||||||
|
#@ return HGLRC
|
||||||
|
#@ param id UINT in value
|
||||||
|
#@ param share_context GLXContext in value
|
||||||
|
#@ param attribList Int32 in array [???]
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXDeleteAssociatedContextAMD(ctx)
|
||||||
|
#@ return BOOL
|
||||||
|
#@ param ctx GLXContext in value
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXMakeAssociatedContextCurrentAMD(ctx)
|
||||||
|
#@ return BOOL
|
||||||
|
#@ param ctx GLXContext in value
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXGetCurrentAssociatedContextAMD()
|
||||||
|
#@ return HGLRC
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
#@
|
||||||
|
#@ glXBlitContextFramebufferAMD(dstCtx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)
|
||||||
|
#@ return VOID
|
||||||
|
#@ param dstCtx GLXContext in value
|
||||||
|
#@ param srcX0 GLint in value
|
||||||
|
#@ param srcY0 GLint in value
|
||||||
|
#@ param srcX1 GLint in value
|
||||||
|
#@ param srcY1 GLint in value
|
||||||
|
#@ param dstX0 GLint in value
|
||||||
|
#@ param dstY0 GLint in value
|
||||||
|
#@ param dstX1 GLint in value
|
||||||
|
#@ param dstY1 GLint in value
|
||||||
|
#@ param mask GLbitfield in value
|
||||||
|
#@ param filter GLenum in value
|
||||||
|
#@ category AMD_gpu_association
|
||||||
|
#@ version 4.1
|
||||||
|
#@ extension
|
||||||
|
#@ glxropcode ?
|
||||||
|
#@ glxflags ignore
|
||||||
|
#@ offset ?
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2010 Intel Corporation
|
* Copyright © 2010 Intel Corporation
|
||||||
|
* Copyright © 2011 Apple Inc.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Soft-
|
* copy of this software and associated documentation files (the "Soft-
|
||||||
@@ -32,23 +33,31 @@
|
|||||||
|
|
||||||
#if defined(GLX_USE_APPLEGL)
|
#if defined(GLX_USE_APPLEGL)
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "glxclient.h"
|
||||||
|
#include "apple_glx_context.h"
|
||||||
|
#include "apple_glx.h"
|
||||||
|
#include "glx_error.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
applegl_destroy_context(struct glx_context *gc)
|
applegl_destroy_context(struct glx_context *gc)
|
||||||
{
|
{
|
||||||
apple_glx_destroy_context(&gc->driContext, gc->currentDpy);
|
apple_glx_destroy_context(&gc->driContext, gc->psc->dpy);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
applegl_bind_context(struct glx_context *gc, struct glx_context *old,
|
applegl_bind_context(struct glx_context *gc, struct glx_context *old,
|
||||||
GLXDrawable draw, GLXDrawable read)
|
GLXDrawable draw, GLXDrawable read)
|
||||||
{
|
{
|
||||||
|
Display *dpy = gc->psc->dpy;
|
||||||
bool error = apple_glx_make_current_context(dpy,
|
bool error = apple_glx_make_current_context(dpy,
|
||||||
(oldGC && oldGC != &dummyContext) ? oldGC->driContext : NUL~
|
(old && old != &dummyContext) ? old->driContext : NULL,
|
||||||
gc ? gc->driContext : NULL, draw);
|
gc ? gc->driContext : NULL, draw);
|
||||||
|
|
||||||
apple_glx_diagnostic("%s: error %s\n", __func__, error ? "YES" : "NO");
|
apple_glx_diagnostic("%s: error %s\n", __func__, error ? "YES" : "NO");
|
||||||
if (error)
|
if (error)
|
||||||
return GLXBadContext;
|
return 1; /* GLXBadContext is the same as Success (0) */
|
||||||
|
|
||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
@@ -67,7 +76,8 @@ applegl_wait_gl(struct glx_context *gc)
|
|||||||
static void
|
static void
|
||||||
applegl_wait_x(struct glx_context *gc)
|
applegl_wait_x(struct glx_context *gc)
|
||||||
{
|
{
|
||||||
apple_glx_waitx(gc->dpy, gc->driContext);
|
Display *dpy = gc->psc->dpy;
|
||||||
|
apple_glx_waitx(dpy, gc->driContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct glx_context_vtable applegl_context_vtable = {
|
static const struct glx_context_vtable applegl_context_vtable = {
|
||||||
@@ -81,34 +91,34 @@ static const struct glx_context_vtable applegl_context_vtable = {
|
|||||||
NULL, /* release_tex_image, */
|
NULL, /* release_tex_image, */
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct glx_context *
|
struct glx_context *
|
||||||
applegl_create_context(struct glx_screen *psc,
|
applegl_create_context(struct glx_screen *psc,
|
||||||
struct glx_config *mode,
|
struct glx_config *config,
|
||||||
struct glx_context *shareList, int renderType)
|
struct glx_context *shareList, int renderType)
|
||||||
{
|
{
|
||||||
struct glx_context *gc;
|
struct glx_context *gc;
|
||||||
int errorcode;
|
int errorcode;
|
||||||
bool x11error;
|
bool x11error;
|
||||||
|
Display *dpy = psc->dpy;
|
||||||
|
int screen = psc->scr;
|
||||||
|
|
||||||
/* TODO: Integrate this with apple_glx_create_context and make
|
/* TODO: Integrate this with apple_glx_create_context and make
|
||||||
* struct apple_glx_context inherit from struct glx_context. */
|
* struct apple_glx_context inherit from struct glx_context. */
|
||||||
|
|
||||||
gc = Xmalloc(sizeof *gc);
|
gc = Xcalloc(1, sizeof (*gc));
|
||||||
if (pcp == NULL)
|
if (gc == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
memset(gc, 0, sizeof *gc);
|
if (!glx_context_init(gc, psc, config)) {
|
||||||
if (!glx_context_init(&gc->base, &psc->base, mode)) {
|
|
||||||
Xfree(gc);
|
Xfree(gc);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
gc->vtable = &applegl_context_vtable;
|
gc->vtable = &applegl_context_vtable;
|
||||||
gc->driContext = NULL;
|
gc->driContext = NULL;
|
||||||
gc->do_destroy = False;
|
|
||||||
|
|
||||||
/* TODO: darwin: Integrate with above to do indirect */
|
/* TODO: darwin: Integrate with above to do indirect */
|
||||||
if(apple_glx_create_context(&gc->driContext, dpy, screen, fbconfig,
|
if(apple_glx_create_context(&gc->driContext, dpy, screen, config,
|
||||||
shareList ? shareList->driContext : NULL,
|
shareList ? shareList->driContext : NULL,
|
||||||
&errorcode, &x11error)) {
|
&errorcode, &x11error)) {
|
||||||
__glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error);
|
__glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error);
|
||||||
@@ -117,15 +127,15 @@ applegl_create_context(struct glx_screen *psc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gc->currentContextTag = -1;
|
gc->currentContextTag = -1;
|
||||||
gc->mode = fbconfig;
|
gc->config = config;
|
||||||
gc->isDirect = allowDirect;
|
gc->isDirect = GL_TRUE;
|
||||||
gc->xid = 1; /* Just something not None, so we know when to destroy
|
gc->xid = 1; /* Just something not None, so we know when to destroy
|
||||||
* it in MakeContextCurrent. */
|
* it in MakeContextCurrent. */
|
||||||
|
|
||||||
return gc;
|
return gc;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct glx_screen_vtable appegl_screen_vtable = {
|
struct glx_screen_vtable applegl_screen_vtable = {
|
||||||
applegl_create_context
|
applegl_create_context
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -146,10 +156,12 @@ applegl_create_screen(int screen, struct glx_display * priv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
_X_HIDDEN int
|
_X_HIDDEN int
|
||||||
applegl_create_display(struct glx_display *display)
|
applegl_create_display(struct glx_display *glx_dpy)
|
||||||
{
|
{
|
||||||
/* create applegl display and stuff in display->appleglDisplay */
|
if(!apple_init_glx(glx_dpy->dpy))
|
||||||
apple_init_glx(display);
|
return 1;
|
||||||
|
|
||||||
|
return GLXBadContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -843,7 +843,7 @@ glXCreatePixmap(Display * dpy, GLXFBConfig config, Pixmap pixmap,
|
|||||||
WARN_ONCE_GLX_1_3(dpy, __func__);
|
WARN_ONCE_GLX_1_3(dpy, __func__);
|
||||||
|
|
||||||
#ifdef GLX_USE_APPLEGL
|
#ifdef GLX_USE_APPLEGL
|
||||||
const struct glx_config *modes = (const __GLcontextModes *) config;
|
const struct glx_config *modes = (const struct glx_config *) config;
|
||||||
|
|
||||||
if (apple_glx_pixmap_create(dpy, modes->screen, pixmap, modes))
|
if (apple_glx_pixmap_create(dpy, modes->screen, pixmap, modes))
|
||||||
return None;
|
return None;
|
||||||
|
@@ -342,6 +342,10 @@ struct glx_context
|
|||||||
*/
|
*/
|
||||||
Bool isDirect;
|
Bool isDirect;
|
||||||
|
|
||||||
|
#if defined(GLX_DIRECT_RENDERING) && defined(GLX_USE_APPLEGL)
|
||||||
|
void *driContext;
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \c dpy of current display for this context. Will be \c NULL if not
|
* \c dpy of current display for this context. Will be \c NULL if not
|
||||||
* current to any display, or if this is the "dummy context".
|
* current to any display, or if this is the "dummy context".
|
||||||
@@ -771,7 +775,19 @@ GarbageCollectDRIDrawables(struct glx_screen *psc);
|
|||||||
|
|
||||||
extern __GLXDRIdrawable *
|
extern __GLXDRIdrawable *
|
||||||
GetGLXDRIDrawable(Display *dpy, GLXDrawable drawable);
|
GetGLXDRIDrawable(Display *dpy, GLXDrawable drawable);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GLX_USE_APPLEGL
|
||||||
|
extern struct glx_screen *
|
||||||
|
applegl_create_screen(int screen, struct glx_display * priv);
|
||||||
|
|
||||||
|
extern struct glx_context *
|
||||||
|
applegl_create_context(struct glx_screen *psc,
|
||||||
|
struct glx_config *mode,
|
||||||
|
struct glx_context *shareList, int renderType);
|
||||||
|
|
||||||
|
extern int
|
||||||
|
applegl_create_display(struct glx_display *display);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern struct glx_context dummyContext;
|
extern struct glx_context dummyContext;
|
||||||
|
@@ -228,10 +228,14 @@ CreateContext(Display * dpy, int generic_id,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
gc = NULL;
|
gc = NULL;
|
||||||
|
#ifdef GLX_USE_APPLEGL
|
||||||
|
gc = applegl_create_context(psc, config, shareList, renderType);
|
||||||
|
#else
|
||||||
if (allowDirect && psc->vtable->create_context)
|
if (allowDirect && psc->vtable->create_context)
|
||||||
gc = psc->vtable->create_context(psc, config, shareList, renderType);
|
gc = psc->vtable->create_context(psc, config, shareList, renderType);
|
||||||
if (!gc)
|
if (!gc)
|
||||||
gc = indirect_create_context(psc, config, shareList, renderType);
|
gc = indirect_create_context(psc, config, shareList, renderType);
|
||||||
|
#endif
|
||||||
if (!gc)
|
if (!gc)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@@ -606,7 +610,7 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap)
|
|||||||
struct glx_screen *const psc = GetGLXScreenConfigs(dpy, screen);
|
struct glx_screen *const psc = GetGLXScreenConfigs(dpy, screen);
|
||||||
const struct glx_config *config;
|
const struct glx_config *config;
|
||||||
|
|
||||||
config = _gl_context_modes_find_visual(psc->visuals, vis->visualid);
|
config = glx_config_find_visual(psc->visuals, vis->visualid);
|
||||||
|
|
||||||
if(apple_glx_pixmap_create(dpy, vis->screen, pixmap, config))
|
if(apple_glx_pixmap_create(dpy, vis->screen, pixmap, config))
|
||||||
return None;
|
return None;
|
||||||
@@ -710,7 +714,7 @@ _X_EXPORT void
|
|||||||
glXSwapBuffers(Display * dpy, GLXDrawable drawable)
|
glXSwapBuffers(Display * dpy, GLXDrawable drawable)
|
||||||
{
|
{
|
||||||
#ifdef GLX_USE_APPLEGL
|
#ifdef GLX_USE_APPLEGL
|
||||||
GLXContext gc = glXGetCurrentContext();
|
struct glx_context * gc = __glXGetCurrentContext();
|
||||||
if(gc && apple_glx_is_current_drawable(dpy, gc->driContext, drawable)) {
|
if(gc && apple_glx_is_current_drawable(dpy, gc->driContext, drawable)) {
|
||||||
apple_glx_swap_buffers(gc->driContext);
|
apple_glx_swap_buffers(gc->driContext);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -160,12 +160,10 @@ _X_HIDDEN void
|
|||||||
__glXSetCurrentContextNull(void)
|
__glXSetCurrentContextNull(void)
|
||||||
{
|
{
|
||||||
__glXSetCurrentContext(&dummyContext);
|
__glXSetCurrentContext(&dummyContext);
|
||||||
#ifndef GLX_USE_APPLEGL
|
|
||||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||||
_glapi_set_dispatch(NULL); /* no-op functions */
|
_glapi_set_dispatch(NULL); /* no-op functions */
|
||||||
_glapi_set_context(NULL);
|
_glapi_set_context(NULL);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_X_EXPORT GLXContext
|
_X_EXPORT GLXContext
|
||||||
@@ -234,6 +232,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
|||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef GLX_USE_APPLEGL
|
||||||
_glapi_check_multithread();
|
_glapi_check_multithread();
|
||||||
|
|
||||||
if (gc != NULL && gc->thread_id != 0 && gc->thread_id != _glthread_GetID()) {
|
if (gc != NULL && gc->thread_id != 0 && gc->thread_id != _glthread_GetID()) {
|
||||||
@@ -241,6 +240,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
|||||||
BadAccess, X_GLXMakeContextCurrent);
|
BadAccess, X_GLXMakeContextCurrent);
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (oldGC == gc &&
|
if (oldGC == gc &&
|
||||||
gc->currentDrawable == draw && gc->currentReadable == read)
|
gc->currentDrawable == draw && gc->currentReadable == read)
|
||||||
@@ -258,7 +258,9 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
|||||||
gc->currentDpy = dpy;
|
gc->currentDpy = dpy;
|
||||||
gc->currentDrawable = draw;
|
gc->currentDrawable = draw;
|
||||||
gc->currentReadable = read;
|
gc->currentReadable = read;
|
||||||
|
#ifndef GLX_USE_APPLEGL
|
||||||
gc->thread_id = _glthread_GetID();
|
gc->thread_id = _glthread_GetID();
|
||||||
|
#endif
|
||||||
__glXSetCurrentContext(gc);
|
__glXSetCurrentContext(gc);
|
||||||
ret = gc->vtable->bind(gc, oldGC, draw, read);
|
ret = gc->vtable->bind(gc, oldGC, draw, read);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -764,11 +764,12 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv)
|
|||||||
psc = (*priv->driswDisplay->createScreen) (i, priv);
|
psc = (*priv->driswDisplay->createScreen) (i, priv);
|
||||||
#endif
|
#endif
|
||||||
#if defined(GLX_USE_APPLEGL)
|
#if defined(GLX_USE_APPLEGL)
|
||||||
if (psc == NULL && priv->appleglDisplay)
|
if (psc == NULL)
|
||||||
psc = (*priv->appleglDisplay->createScreen) (i, priv);
|
psc = applegl_create_screen(i, priv);
|
||||||
#endif
|
#else
|
||||||
if (psc == NULL)
|
if (psc == NULL)
|
||||||
psc = indirect_create_screen(i, priv);
|
psc = indirect_create_screen(i, priv);
|
||||||
|
#endif
|
||||||
priv->screens[i] = psc;
|
priv->screens[i] = psc;
|
||||||
}
|
}
|
||||||
SyncHandle();
|
SyncHandle();
|
||||||
|
@@ -98,9 +98,6 @@ static int r300_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg)
|
|||||||
unsigned int relevant;
|
unsigned int relevant;
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
if (reg.Abs)
|
|
||||||
reg.Negate = RC_MASK_NONE;
|
|
||||||
|
|
||||||
if (opcode == RC_OPCODE_KIL ||
|
if (opcode == RC_OPCODE_KIL ||
|
||||||
opcode == RC_OPCODE_TEX ||
|
opcode == RC_OPCODE_TEX ||
|
||||||
opcode == RC_OPCODE_TXB ||
|
opcode == RC_OPCODE_TXB ||
|
||||||
@@ -142,9 +139,6 @@ static void r300_swizzle_split(
|
|||||||
struct rc_src_register src, unsigned int mask,
|
struct rc_src_register src, unsigned int mask,
|
||||||
struct rc_swizzle_split * split)
|
struct rc_swizzle_split * split)
|
||||||
{
|
{
|
||||||
if (src.Abs)
|
|
||||||
src.Negate = RC_MASK_NONE;
|
|
||||||
|
|
||||||
split->NumPhases = 0;
|
split->NumPhases = 0;
|
||||||
|
|
||||||
while(mask) {
|
while(mask) {
|
||||||
|
@@ -272,6 +272,7 @@ static void ei_mad(struct r300_vertex_program_code *vp,
|
|||||||
struct rc_sub_instruction *vpi,
|
struct rc_sub_instruction *vpi,
|
||||||
unsigned int * inst)
|
unsigned int * inst)
|
||||||
{
|
{
|
||||||
|
unsigned int i;
|
||||||
/* Remarks about hardware limitations of MAD
|
/* Remarks about hardware limitations of MAD
|
||||||
* (please preserve this comment, as this information is _NOT_
|
* (please preserve this comment, as this information is _NOT_
|
||||||
* in the documentation provided by AMD).
|
* in the documentation provided by AMD).
|
||||||
@@ -317,6 +318,23 @@ static void ei_mad(struct r300_vertex_program_code *vp,
|
|||||||
t_dst_index(vp, &vpi->DstReg),
|
t_dst_index(vp, &vpi->DstReg),
|
||||||
t_dst_mask(vpi->DstReg.WriteMask),
|
t_dst_mask(vpi->DstReg.WriteMask),
|
||||||
t_dst_class(vpi->DstReg.File));
|
t_dst_class(vpi->DstReg.File));
|
||||||
|
|
||||||
|
/* Arguments with constant swizzles still count as a unique
|
||||||
|
* temporary, so we should make sure these arguments share a
|
||||||
|
* register index with one of the other arguments. */
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
unsigned int j;
|
||||||
|
if (vpi->SrcReg[i].File != RC_FILE_NONE)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (j = 0; j < 3; j++) {
|
||||||
|
if (i != j) {
|
||||||
|
vpi->SrcReg[i].Index =
|
||||||
|
vpi->SrcReg[j].Index;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
inst[1] = t_src(vp, &vpi->SrcReg[0]);
|
inst[1] = t_src(vp, &vpi->SrcReg[0]);
|
||||||
inst[2] = t_src(vp, &vpi->SrcReg[1]);
|
inst[2] = t_src(vp, &vpi->SrcReg[1]);
|
||||||
|
@@ -74,9 +74,6 @@ static int r500_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg)
|
|||||||
if (opcode == RC_OPCODE_KIL && (reg.Swizzle != RC_SWIZZLE_XYZW || reg.Negate != RC_MASK_NONE))
|
if (opcode == RC_OPCODE_KIL && (reg.Swizzle != RC_SWIZZLE_XYZW || reg.Negate != RC_MASK_NONE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (reg.Negate)
|
|
||||||
reg.Negate ^= RC_MASK_XYZW;
|
|
||||||
|
|
||||||
for(i = 0; i < 4; ++i) {
|
for(i = 0; i < 4; ++i) {
|
||||||
unsigned int swz = GET_SWZ(reg.Swizzle, i);
|
unsigned int swz = GET_SWZ(reg.Swizzle, i);
|
||||||
if (swz == RC_SWIZZLE_UNUSED) {
|
if (swz == RC_SWIZZLE_UNUSED) {
|
||||||
@@ -100,9 +97,6 @@ static int r500_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg)
|
|||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
/* ALU instructions support almost everything */
|
/* ALU instructions support almost everything */
|
||||||
if (reg.Abs)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
relevant = 0;
|
relevant = 0;
|
||||||
for(i = 0; i < 3; ++i) {
|
for(i = 0; i < 3; ++i) {
|
||||||
unsigned int swz = GET_SWZ(reg.Swizzle, i);
|
unsigned int swz = GET_SWZ(reg.Swizzle, i);
|
||||||
|
@@ -373,7 +373,7 @@ static int emit_tex(struct r300_fragment_program_compiler *c, struct rc_sub_inst
|
|||||||
| (inst->DstReg.WriteMask << 11)
|
| (inst->DstReg.WriteMask << 11)
|
||||||
| R500_INST_TEX_SEM_WAIT;
|
| R500_INST_TEX_SEM_WAIT;
|
||||||
code->inst[ip].inst1 = R500_TEX_ID(inst->TexSrcUnit)
|
code->inst[ip].inst1 = R500_TEX_ID(inst->TexSrcUnit)
|
||||||
| R500_TEX_SEM_ACQUIRE | R500_TEX_IGNORE_UNCOVERED;
|
| R500_TEX_SEM_ACQUIRE;
|
||||||
|
|
||||||
if (inst->TexSrcTarget == RC_TEXTURE_RECT)
|
if (inst->TexSrcTarget == RC_TEXTURE_RECT)
|
||||||
code->inst[ip].inst1 |= R500_TEX_UNSCALED;
|
code->inst[ip].inst1 |= R500_TEX_UNSCALED;
|
||||||
|
@@ -647,10 +647,34 @@ static int is_presub_candidate(
|
|||||||
{
|
{
|
||||||
const struct rc_opcode_info * info = rc_get_opcode_info(inst->U.I.Opcode);
|
const struct rc_opcode_info * info = rc_get_opcode_info(inst->U.I.Opcode);
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
unsigned int is_constant[2] = {0, 0};
|
||||||
|
|
||||||
|
assert(inst->U.I.Opcode == RC_OPCODE_ADD);
|
||||||
|
|
||||||
if (inst->U.I.PreSub.Opcode != RC_PRESUB_NONE || inst->U.I.SaturateMode)
|
if (inst->U.I.PreSub.Opcode != RC_PRESUB_NONE || inst->U.I.SaturateMode)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
/* If both sources use a constant swizzle, then we can't convert it to
|
||||||
|
* a presubtract operation. In fact for the ADD and SUB presubtract
|
||||||
|
* operations neither source can contain a constant swizzle. This
|
||||||
|
* specific case is checked in peephole_add_presub_add() when
|
||||||
|
* we make sure the swizzles for both sources are equal, so we
|
||||||
|
* don't need to worry about it here. */
|
||||||
|
for (i = 0; i < 2; i++) {
|
||||||
|
int chan;
|
||||||
|
for (chan = 0; chan < 4; chan++) {
|
||||||
|
rc_swizzle swz =
|
||||||
|
get_swz(inst->U.I.SrcReg[i].Swizzle, chan);
|
||||||
|
if (swz == RC_SWIZZLE_ONE
|
||||||
|
|| swz == RC_SWIZZLE_ZERO
|
||||||
|
|| swz == RC_SWIZZLE_HALF) {
|
||||||
|
is_constant[i] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (is_constant[0] && is_constant[1])
|
||||||
|
return 0;
|
||||||
|
|
||||||
for(i = 0; i < info->NumSrcRegs; i++) {
|
for(i = 0; i < info->NumSrcRegs; i++) {
|
||||||
struct rc_src_register src = inst->U.I.SrcReg[i];
|
struct rc_src_register src = inst->U.I.SrcReg[i];
|
||||||
if (src_reads_dst_mask(src, inst->U.I.DstReg))
|
if (src_reads_dst_mask(src, inst->U.I.DstReg))
|
||||||
|
@@ -211,16 +211,21 @@ static void set_pair_instruction(struct r300_fragment_program_compiler *c,
|
|||||||
if (needrgb && !istranscendent) {
|
if (needrgb && !istranscendent) {
|
||||||
unsigned int srcrgb = 0;
|
unsigned int srcrgb = 0;
|
||||||
unsigned int srcalpha = 0;
|
unsigned int srcalpha = 0;
|
||||||
|
unsigned int srcmask = 0;
|
||||||
int j;
|
int j;
|
||||||
/* We don't care about the alpha channel here. We only
|
/* We don't care about the alpha channel here. We only
|
||||||
* want the part of the swizzle that writes to rgb,
|
* want the part of the swizzle that writes to rgb,
|
||||||
* since we are creating an rgb instruction. */
|
* since we are creating an rgb instruction. */
|
||||||
for(j = 0; j < 3; ++j) {
|
for(j = 0; j < 3; ++j) {
|
||||||
unsigned int swz = GET_SWZ(inst->SrcReg[i].Swizzle, j);
|
unsigned int swz = GET_SWZ(inst->SrcReg[i].Swizzle, j);
|
||||||
if (swz < 3)
|
|
||||||
|
if (swz < RC_SWIZZLE_W)
|
||||||
srcrgb = 1;
|
srcrgb = 1;
|
||||||
else if (swz < 4)
|
else if (swz == RC_SWIZZLE_W)
|
||||||
srcalpha = 1;
|
srcalpha = 1;
|
||||||
|
|
||||||
|
if (swz < RC_SWIZZLE_UNUSED)
|
||||||
|
srcmask |= 1 << j;
|
||||||
}
|
}
|
||||||
source = rc_pair_alloc_source(pair, srcrgb, srcalpha,
|
source = rc_pair_alloc_source(pair, srcrgb, srcalpha,
|
||||||
inst->SrcReg[i].File, inst->SrcReg[i].Index);
|
inst->SrcReg[i].File, inst->SrcReg[i].Index);
|
||||||
@@ -232,7 +237,7 @@ static void set_pair_instruction(struct r300_fragment_program_compiler *c,
|
|||||||
pair->RGB.Arg[i].Source = source;
|
pair->RGB.Arg[i].Source = source;
|
||||||
pair->RGB.Arg[i].Swizzle = inst->SrcReg[i].Swizzle & 0x1ff;
|
pair->RGB.Arg[i].Swizzle = inst->SrcReg[i].Swizzle & 0x1ff;
|
||||||
pair->RGB.Arg[i].Abs = inst->SrcReg[i].Abs;
|
pair->RGB.Arg[i].Abs = inst->SrcReg[i].Abs;
|
||||||
pair->RGB.Arg[i].Negate = !!(inst->SrcReg[i].Negate & (RC_MASK_X | RC_MASK_Y | RC_MASK_Z));
|
pair->RGB.Arg[i].Negate = !!(srcmask & inst->SrcReg[i].Negate & (RC_MASK_X | RC_MASK_Y | RC_MASK_Z));
|
||||||
}
|
}
|
||||||
if (needalpha) {
|
if (needalpha) {
|
||||||
unsigned int srcrgb = 0;
|
unsigned int srcrgb = 0;
|
||||||
|
@@ -29,20 +29,34 @@
|
|||||||
|
|
||||||
/* Series of transformations to be done on textures. */
|
/* Series of transformations to be done on textures. */
|
||||||
|
|
||||||
static struct rc_src_register shadow_ambient(struct r300_fragment_program_compiler *compiler,
|
static struct rc_src_register shadow_fail_value(struct r300_fragment_program_compiler *compiler,
|
||||||
int tmu)
|
int tmu)
|
||||||
{
|
{
|
||||||
struct rc_src_register reg = { 0, };
|
struct rc_src_register reg = { 0, };
|
||||||
|
|
||||||
if (compiler->enable_shadow_ambient) {
|
if (compiler->enable_shadow_ambient) {
|
||||||
reg.File = RC_FILE_CONSTANT;
|
reg.File = RC_FILE_CONSTANT;
|
||||||
reg.Index = rc_constants_add_state(&compiler->Base.Program.Constants,
|
reg.Index = rc_constants_add_state(&compiler->Base.Program.Constants,
|
||||||
RC_STATE_SHADOW_AMBIENT, tmu);
|
RC_STATE_SHADOW_AMBIENT, tmu);
|
||||||
reg.Swizzle = RC_SWIZZLE_WWWW;
|
reg.Swizzle = RC_SWIZZLE_WWWW;
|
||||||
} else {
|
} else {
|
||||||
reg.File = RC_FILE_NONE;
|
reg.File = RC_FILE_NONE;
|
||||||
reg.Swizzle = RC_SWIZZLE_0000;
|
reg.Swizzle = RC_SWIZZLE_0000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reg.Swizzle = combine_swizzles(reg.Swizzle,
|
||||||
|
compiler->state.unit[tmu].depth_texture_swizzle);
|
||||||
|
return reg;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct rc_src_register shadow_pass_value(struct r300_fragment_program_compiler *compiler,
|
||||||
|
int tmu)
|
||||||
|
{
|
||||||
|
struct rc_src_register reg = { 0, };
|
||||||
|
|
||||||
|
reg.File = RC_FILE_NONE;
|
||||||
|
reg.Swizzle = combine_swizzles(RC_SWIZZLE_1111,
|
||||||
|
compiler->state.unit[tmu].depth_texture_swizzle);
|
||||||
return reg;
|
return reg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,89 +152,92 @@ int radeonTransformTEX(
|
|||||||
inst->U.I.Opcode = RC_OPCODE_MOV;
|
inst->U.I.Opcode = RC_OPCODE_MOV;
|
||||||
|
|
||||||
if (comparefunc == RC_COMPARE_FUNC_ALWAYS) {
|
if (comparefunc == RC_COMPARE_FUNC_ALWAYS) {
|
||||||
inst->U.I.SrcReg[0].File = RC_FILE_NONE;
|
inst->U.I.SrcReg[0] = shadow_pass_value(compiler, inst->U.I.TexSrcUnit);
|
||||||
inst->U.I.SrcReg[0].Swizzle = RC_SWIZZLE_1111;
|
|
||||||
} else {
|
} else {
|
||||||
inst->U.I.SrcReg[0] = shadow_ambient(compiler, inst->U.I.TexSrcUnit);
|
inst->U.I.SrcReg[0] = shadow_fail_value(compiler, inst->U.I.TexSrcUnit);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
rc_compare_func comparefunc = compiler->state.unit[inst->U.I.TexSrcUnit].texture_compare_func;
|
|
||||||
struct rc_instruction * inst_rcp = NULL;
|
struct rc_instruction * inst_rcp = NULL;
|
||||||
struct rc_instruction * inst_mad;
|
struct rc_instruction *inst_mul, *inst_add, *inst_cmp;
|
||||||
struct rc_instruction * inst_cmp;
|
|
||||||
unsigned tmp_texsample;
|
unsigned tmp_texsample;
|
||||||
unsigned tmp_sum;
|
unsigned tmp_sum;
|
||||||
unsigned tmp_recip_w = 0;
|
int pass, fail;
|
||||||
int pass, fail, tex;
|
|
||||||
|
|
||||||
/* Save the output register. */
|
/* Save the output register. */
|
||||||
struct rc_dst_register output_reg = inst->U.I.DstReg;
|
struct rc_dst_register output_reg = inst->U.I.DstReg;
|
||||||
|
unsigned saturate_mode = inst->U.I.SaturateMode;
|
||||||
|
|
||||||
/* Redirect TEX to a new temp. */
|
/* Redirect TEX to a new temp. */
|
||||||
tmp_texsample = rc_find_free_temporary(c);
|
tmp_texsample = rc_find_free_temporary(c);
|
||||||
|
inst->U.I.SaturateMode = 0;
|
||||||
inst->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
inst->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||||
inst->U.I.DstReg.Index = tmp_texsample;
|
inst->U.I.DstReg.Index = tmp_texsample;
|
||||||
inst->U.I.DstReg.WriteMask = RC_MASK_XYZW;
|
inst->U.I.DstReg.WriteMask = RC_MASK_XYZW;
|
||||||
|
|
||||||
if (inst->U.I.Opcode == RC_OPCODE_TXP) {
|
tmp_sum = rc_find_free_temporary(c);
|
||||||
tmp_recip_w = rc_find_free_temporary(c);
|
|
||||||
|
|
||||||
|
if (inst->U.I.Opcode == RC_OPCODE_TXP) {
|
||||||
/* Compute 1/W. */
|
/* Compute 1/W. */
|
||||||
inst_rcp = rc_insert_new_instruction(c, inst);
|
inst_rcp = rc_insert_new_instruction(c, inst);
|
||||||
inst_rcp->U.I.Opcode = RC_OPCODE_RCP;
|
inst_rcp->U.I.Opcode = RC_OPCODE_RCP;
|
||||||
inst_rcp->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
inst_rcp->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||||
inst_rcp->U.I.DstReg.Index = tmp_recip_w;
|
inst_rcp->U.I.DstReg.Index = tmp_sum;
|
||||||
inst_rcp->U.I.DstReg.WriteMask = RC_MASK_W;
|
inst_rcp->U.I.DstReg.WriteMask = RC_MASK_W;
|
||||||
inst_rcp->U.I.SrcReg[0] = inst->U.I.SrcReg[0];
|
inst_rcp->U.I.SrcReg[0] = inst->U.I.SrcReg[0];
|
||||||
inst_rcp->U.I.SrcReg[0].Swizzle =
|
inst_rcp->U.I.SrcReg[0].Swizzle =
|
||||||
RC_MAKE_SWIZZLE_SMEAR(GET_SWZ(inst->U.I.SrcReg[0].Swizzle, 3));
|
RC_MAKE_SWIZZLE_SMEAR(GET_SWZ(inst->U.I.SrcReg[0].Swizzle, 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Perspective-divide Z by W (if it's TXP) and add the texture sample (see below). */
|
/* Divide Z by W (if it's TXP) and saturate. */
|
||||||
tmp_sum = rc_find_free_temporary(c);
|
inst_mul = rc_insert_new_instruction(c, inst_rcp ? inst_rcp : inst);
|
||||||
inst_mad = rc_insert_new_instruction(c, inst_rcp ? inst_rcp : inst);
|
inst_mul->U.I.Opcode = inst->U.I.Opcode == RC_OPCODE_TXP ? RC_OPCODE_MUL : RC_OPCODE_MOV;
|
||||||
inst_mad->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
inst_mul->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||||
inst_mad->U.I.DstReg.Index = tmp_sum;
|
inst_mul->U.I.DstReg.Index = tmp_sum;
|
||||||
inst_mad->U.I.SrcReg[0] = inst->U.I.SrcReg[0];
|
inst_mul->U.I.DstReg.WriteMask = RC_MASK_W;
|
||||||
inst_mad->U.I.SrcReg[0].Swizzle =
|
inst_mul->U.I.SaturateMode = RC_SATURATE_ZERO_ONE;
|
||||||
|
inst_mul->U.I.SrcReg[0] = inst->U.I.SrcReg[0];
|
||||||
|
inst_mul->U.I.SrcReg[0].Swizzle =
|
||||||
RC_MAKE_SWIZZLE_SMEAR(GET_SWZ(inst->U.I.SrcReg[0].Swizzle, 2));
|
RC_MAKE_SWIZZLE_SMEAR(GET_SWZ(inst->U.I.SrcReg[0].Swizzle, 2));
|
||||||
if (inst->U.I.Opcode == RC_OPCODE_TXP) {
|
if (inst->U.I.Opcode == RC_OPCODE_TXP) {
|
||||||
inst_mad->U.I.Opcode = RC_OPCODE_MAD;
|
inst_mul->U.I.SrcReg[1].File = RC_FILE_TEMPORARY;
|
||||||
inst_mad->U.I.SrcReg[1].File = RC_FILE_TEMPORARY;
|
inst_mul->U.I.SrcReg[1].Index = tmp_sum;
|
||||||
inst_mad->U.I.SrcReg[1].Index = tmp_recip_w;
|
inst_mul->U.I.SrcReg[1].Swizzle = RC_SWIZZLE_WWWW;
|
||||||
inst_mad->U.I.SrcReg[1].Swizzle = RC_SWIZZLE_WWWW;
|
|
||||||
tex = 2;
|
|
||||||
} else {
|
|
||||||
inst_mad->U.I.Opcode = RC_OPCODE_ADD;
|
|
||||||
tex = 1;
|
|
||||||
}
|
|
||||||
inst_mad->U.I.SrcReg[tex].File = RC_FILE_TEMPORARY;
|
|
||||||
inst_mad->U.I.SrcReg[tex].Index = tmp_texsample;
|
|
||||||
inst_mad->U.I.SrcReg[tex].Swizzle = compiler->state.unit[inst->U.I.TexSrcUnit].depth_texture_swizzle;
|
|
||||||
|
|
||||||
/* Fake EQUAL/NOTEQUAL, it seems to pass some tests suprisingly. */
|
|
||||||
if (comparefunc == RC_COMPARE_FUNC_EQUAL) {
|
|
||||||
comparefunc = RC_COMPARE_FUNC_GEQUAL;
|
|
||||||
} else if (comparefunc == RC_COMPARE_FUNC_NOTEQUAL) {
|
|
||||||
comparefunc = RC_COMPARE_FUNC_LESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Recall that SrcReg[0] is r, SrcReg[tex] is tex and:
|
/* Add the depth texture value. */
|
||||||
|
inst_add = rc_insert_new_instruction(c, inst_mul);
|
||||||
|
inst_add->U.I.Opcode = RC_OPCODE_ADD;
|
||||||
|
inst_add->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||||
|
inst_add->U.I.DstReg.Index = tmp_sum;
|
||||||
|
inst_add->U.I.DstReg.WriteMask = RC_MASK_W;
|
||||||
|
inst_add->U.I.SrcReg[0].File = RC_FILE_TEMPORARY;
|
||||||
|
inst_add->U.I.SrcReg[0].Index = tmp_sum;
|
||||||
|
inst_add->U.I.SrcReg[0].Swizzle = RC_SWIZZLE_WWWW;
|
||||||
|
inst_add->U.I.SrcReg[1].File = RC_FILE_TEMPORARY;
|
||||||
|
inst_add->U.I.SrcReg[1].Index = tmp_texsample;
|
||||||
|
inst_add->U.I.SrcReg[1].Swizzle = RC_SWIZZLE_XXXX;
|
||||||
|
|
||||||
|
/* Note that SrcReg[0] is r, SrcReg[1] is tex and:
|
||||||
* LESS: r < tex <=> -tex+r < 0
|
* LESS: r < tex <=> -tex+r < 0
|
||||||
* GEQUAL: r >= tex <=> not (-tex+r < 0)
|
* GEQUAL: r >= tex <=> not (-tex+r < 0)
|
||||||
* GREATER: r > tex <=> tex-r < 0
|
* GREATER: r > tex <=> tex-r < 0
|
||||||
* LEQUAL: r <= tex <=> not ( tex-r < 0)
|
* LEQUAL: r <= tex <=> not ( tex-r < 0)
|
||||||
*
|
* EQUAL: GEQUAL
|
||||||
* This negates either r or tex: */
|
* NOTEQUAL:LESS
|
||||||
if (comparefunc == RC_COMPARE_FUNC_LESS || comparefunc == RC_COMPARE_FUNC_GEQUAL)
|
*/
|
||||||
inst_mad->U.I.SrcReg[tex].Negate = inst_mad->U.I.SrcReg[tex].Negate ^ RC_MASK_XYZW;
|
|
||||||
|
/* This negates either r or tex: */
|
||||||
|
if (comparefunc == RC_COMPARE_FUNC_LESS || comparefunc == RC_COMPARE_FUNC_GEQUAL ||
|
||||||
|
comparefunc == RC_COMPARE_FUNC_EQUAL || comparefunc == RC_COMPARE_FUNC_NOTEQUAL)
|
||||||
|
inst_add->U.I.SrcReg[1].Negate = inst_add->U.I.SrcReg[1].Negate ^ RC_MASK_XYZW;
|
||||||
else
|
else
|
||||||
inst_mad->U.I.SrcReg[0].Negate = inst_mad->U.I.SrcReg[0].Negate ^ RC_MASK_XYZW;
|
inst_add->U.I.SrcReg[0].Negate = inst_add->U.I.SrcReg[0].Negate ^ RC_MASK_XYZW;
|
||||||
|
|
||||||
/* This negates the whole expresion: */
|
/* This negates the whole expresion: */
|
||||||
if (comparefunc == RC_COMPARE_FUNC_LESS || comparefunc == RC_COMPARE_FUNC_GREATER) {
|
if (comparefunc == RC_COMPARE_FUNC_LESS || comparefunc == RC_COMPARE_FUNC_GREATER ||
|
||||||
|
comparefunc == RC_COMPARE_FUNC_NOTEQUAL) {
|
||||||
pass = 1;
|
pass = 1;
|
||||||
fail = 2;
|
fail = 2;
|
||||||
} else {
|
} else {
|
||||||
@@ -228,16 +245,19 @@ int radeonTransformTEX(
|
|||||||
fail = 1;
|
fail = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
inst_cmp = rc_insert_new_instruction(c, inst_mad);
|
inst_cmp = rc_insert_new_instruction(c, inst_add);
|
||||||
inst_cmp->U.I.Opcode = RC_OPCODE_CMP;
|
inst_cmp->U.I.Opcode = RC_OPCODE_CMP;
|
||||||
|
inst_cmp->U.I.SaturateMode = saturate_mode;
|
||||||
inst_cmp->U.I.DstReg = output_reg;
|
inst_cmp->U.I.DstReg = output_reg;
|
||||||
inst_cmp->U.I.SrcReg[0].File = RC_FILE_TEMPORARY;
|
inst_cmp->U.I.SrcReg[0].File = RC_FILE_TEMPORARY;
|
||||||
inst_cmp->U.I.SrcReg[0].Index = tmp_sum;
|
inst_cmp->U.I.SrcReg[0].Index = tmp_sum;
|
||||||
inst_cmp->U.I.SrcReg[pass].File = RC_FILE_NONE;
|
inst_cmp->U.I.SrcReg[0].Swizzle =
|
||||||
inst_cmp->U.I.SrcReg[pass].Swizzle = RC_SWIZZLE_1111;
|
combine_swizzles(RC_SWIZZLE_WWWW,
|
||||||
inst_cmp->U.I.SrcReg[fail] = shadow_ambient(compiler, inst->U.I.TexSrcUnit);
|
compiler->state.unit[inst->U.I.TexSrcUnit].depth_texture_swizzle);
|
||||||
|
inst_cmp->U.I.SrcReg[pass] = shadow_pass_value(compiler, inst->U.I.TexSrcUnit);
|
||||||
|
inst_cmp->U.I.SrcReg[fail] = shadow_fail_value(compiler, inst->U.I.TexSrcUnit);
|
||||||
|
|
||||||
assert(tmp_texsample != tmp_sum && tmp_sum != tmp_recip_w);
|
assert(tmp_texsample != tmp_sum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -401,17 +421,21 @@ int radeonTransformTEX(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Cannot write texture to output registers (all chips) or with masks (non-r500) */
|
/* Cannot write texture to output registers or with saturate (all chips),
|
||||||
|
* or with masks (non-r500). */
|
||||||
if (inst->U.I.Opcode != RC_OPCODE_KIL &&
|
if (inst->U.I.Opcode != RC_OPCODE_KIL &&
|
||||||
(inst->U.I.DstReg.File != RC_FILE_TEMPORARY ||
|
(inst->U.I.DstReg.File != RC_FILE_TEMPORARY ||
|
||||||
|
inst->U.I.SaturateMode ||
|
||||||
(!c->is_r500 && inst->U.I.DstReg.WriteMask != RC_MASK_XYZW))) {
|
(!c->is_r500 && inst->U.I.DstReg.WriteMask != RC_MASK_XYZW))) {
|
||||||
struct rc_instruction * inst_mov = rc_insert_new_instruction(c, inst);
|
struct rc_instruction * inst_mov = rc_insert_new_instruction(c, inst);
|
||||||
|
|
||||||
inst_mov->U.I.Opcode = RC_OPCODE_MOV;
|
inst_mov->U.I.Opcode = RC_OPCODE_MOV;
|
||||||
|
inst_mov->U.I.SaturateMode = inst->U.I.SaturateMode;
|
||||||
inst_mov->U.I.DstReg = inst->U.I.DstReg;
|
inst_mov->U.I.DstReg = inst->U.I.DstReg;
|
||||||
inst_mov->U.I.SrcReg[0].File = RC_FILE_TEMPORARY;
|
inst_mov->U.I.SrcReg[0].File = RC_FILE_TEMPORARY;
|
||||||
inst_mov->U.I.SrcReg[0].Index = rc_find_free_temporary(c);
|
inst_mov->U.I.SrcReg[0].Index = rc_find_free_temporary(c);
|
||||||
|
|
||||||
|
inst->U.I.SaturateMode = 0;
|
||||||
inst->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
inst->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||||
inst->U.I.DstReg.Index = inst_mov->U.I.SrcReg[0].Index;
|
inst->U.I.DstReg.Index = inst_mov->U.I.SrcReg[0].Index;
|
||||||
inst->U.I.DstReg.WriteMask = RC_MASK_XYZW;
|
inst->U.I.DstReg.WriteMask = RC_MASK_XYZW;
|
||||||
|
@@ -1565,3 +1565,31 @@ OSMesaColorClamp(GLboolean enable)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When GLX_INDIRECT_RENDERING is defined, some symbols are missing in
|
||||||
|
* libglapi.a. We need to define them here.
|
||||||
|
*/
|
||||||
|
#ifdef GLX_INDIRECT_RENDERING
|
||||||
|
|
||||||
|
#define GL_GLEXT_PROTOTYPES
|
||||||
|
#include "GL/gl.h"
|
||||||
|
#include "glapi/glapi.h"
|
||||||
|
#include "glapi/glapitable.h"
|
||||||
|
|
||||||
|
#if defined(USE_MGL_NAMESPACE)
|
||||||
|
#define NAME(func) mgl##func
|
||||||
|
#else
|
||||||
|
#define NAME(func) gl##func
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DISPATCH(FUNC, ARGS, MESSAGE) \
|
||||||
|
GET_DISPATCH()->FUNC ARGS
|
||||||
|
|
||||||
|
#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE) \
|
||||||
|
return GET_DISPATCH()->FUNC ARGS
|
||||||
|
|
||||||
|
/* skip normal ones */
|
||||||
|
#define _GLAPI_SKIP_NORMAL_ENTRY_POINTS
|
||||||
|
#include "glapi/glapitemp.h"
|
||||||
|
|
||||||
|
#endif /* GLX_INDIRECT_RENDERING */
|
||||||
|
@@ -9413,9 +9413,9 @@ _mesa_create_save_table(void)
|
|||||||
SET_DeleteProgramsNV(table, _mesa_DeletePrograms);
|
SET_DeleteProgramsNV(table, _mesa_DeletePrograms);
|
||||||
SET_GenProgramsNV(table, _mesa_GenPrograms);
|
SET_GenProgramsNV(table, _mesa_GenPrograms);
|
||||||
SET_IsProgramNV(table, _mesa_IsProgramARB);
|
SET_IsProgramNV(table, _mesa_IsProgramARB);
|
||||||
SET_GetVertexAttribdvNV(table, _mesa_GetVertexAttribdvNV);
|
SET_GetVertexAttribdvARB(table, _mesa_GetVertexAttribdvARB);
|
||||||
SET_GetVertexAttribfvNV(table, _mesa_GetVertexAttribfvNV);
|
SET_GetVertexAttribfvARB(table, _mesa_GetVertexAttribfvARB);
|
||||||
SET_GetVertexAttribivNV(table, _mesa_GetVertexAttribivNV);
|
SET_GetVertexAttribivARB(table, _mesa_GetVertexAttribivARB);
|
||||||
SET_GetVertexAttribPointervNV(table, _mesa_GetVertexAttribPointervNV);
|
SET_GetVertexAttribPointervNV(table, _mesa_GetVertexAttribPointervNV);
|
||||||
SET_ProgramEnvParameter4dARB(table, save_ProgramEnvParameter4dARB);
|
SET_ProgramEnvParameter4dARB(table, save_ProgramEnvParameter4dARB);
|
||||||
SET_ProgramEnvParameter4dvARB(table, save_ProgramEnvParameter4dvARB);
|
SET_ProgramEnvParameter4dvARB(table, save_ProgramEnvParameter4dvARB);
|
||||||
|
@@ -556,7 +556,7 @@ static const struct value_desc values[] = {
|
|||||||
{ GL_VERTEX_ARRAY_SIZE, ARRAY_INT(Vertex.Size), NO_EXTRA },
|
{ GL_VERTEX_ARRAY_SIZE, ARRAY_INT(Vertex.Size), NO_EXTRA },
|
||||||
{ GL_VERTEX_ARRAY_TYPE, ARRAY_ENUM(Vertex.Type), NO_EXTRA },
|
{ GL_VERTEX_ARRAY_TYPE, ARRAY_ENUM(Vertex.Type), NO_EXTRA },
|
||||||
{ GL_VERTEX_ARRAY_STRIDE, ARRAY_INT(Vertex.Stride), NO_EXTRA },
|
{ GL_VERTEX_ARRAY_STRIDE, ARRAY_INT(Vertex.Stride), NO_EXTRA },
|
||||||
{ GL_NORMAL_ARRAY, ARRAY_ENUM(Normal.Enabled), NO_EXTRA },
|
{ GL_NORMAL_ARRAY, ARRAY_BOOL(Normal.Enabled), NO_EXTRA },
|
||||||
{ GL_NORMAL_ARRAY_TYPE, ARRAY_ENUM(Normal.Type), NO_EXTRA },
|
{ GL_NORMAL_ARRAY_TYPE, ARRAY_ENUM(Normal.Type), NO_EXTRA },
|
||||||
{ GL_NORMAL_ARRAY_STRIDE, ARRAY_INT(Normal.Stride), NO_EXTRA },
|
{ GL_NORMAL_ARRAY_STRIDE, ARRAY_INT(Normal.Stride), NO_EXTRA },
|
||||||
{ GL_COLOR_ARRAY, ARRAY_BOOL(Color.Enabled), NO_EXTRA },
|
{ GL_COLOR_ARRAY, ARRAY_BOOL(Color.Enabled), NO_EXTRA },
|
||||||
@@ -566,11 +566,11 @@ static const struct value_desc values[] = {
|
|||||||
{ GL_TEXTURE_COORD_ARRAY,
|
{ GL_TEXTURE_COORD_ARRAY,
|
||||||
LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Enabled), NO_EXTRA },
|
LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Enabled), NO_EXTRA },
|
||||||
{ GL_TEXTURE_COORD_ARRAY_SIZE,
|
{ GL_TEXTURE_COORD_ARRAY_SIZE,
|
||||||
LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Size), NO_EXTRA },
|
LOC_CUSTOM, TYPE_INT, offsetof(struct gl_client_array, Size), NO_EXTRA },
|
||||||
{ GL_TEXTURE_COORD_ARRAY_TYPE,
|
{ GL_TEXTURE_COORD_ARRAY_TYPE,
|
||||||
LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Type), NO_EXTRA },
|
LOC_CUSTOM, TYPE_ENUM, offsetof(struct gl_client_array, Type), NO_EXTRA },
|
||||||
{ GL_TEXTURE_COORD_ARRAY_STRIDE,
|
{ GL_TEXTURE_COORD_ARRAY_STRIDE,
|
||||||
LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Stride), NO_EXTRA },
|
LOC_CUSTOM, TYPE_INT, offsetof(struct gl_client_array, Stride), NO_EXTRA },
|
||||||
|
|
||||||
/* GL_ARB_ES2_compatibility */
|
/* GL_ARB_ES2_compatibility */
|
||||||
{ GL_SHADER_COMPILER, CONST(1), extra_ARB_ES2_compatibility },
|
{ GL_SHADER_COMPILER, CONST(1), extra_ARB_ES2_compatibility },
|
||||||
@@ -1402,7 +1402,7 @@ void _mesa_init_get_hash(GLcontext *ctx)
|
|||||||
static void
|
static void
|
||||||
find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v)
|
find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v)
|
||||||
{
|
{
|
||||||
struct gl_buffer_object *buffer_obj;
|
struct gl_buffer_object **buffer_obj;
|
||||||
struct gl_client_array *array;
|
struct gl_client_array *array;
|
||||||
GLuint unit, *p;
|
GLuint unit, *p;
|
||||||
|
|
||||||
@@ -1605,9 +1605,9 @@ find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v)
|
|||||||
case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
|
case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
|
||||||
case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
|
case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
|
||||||
case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
|
case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
|
||||||
buffer_obj = (struct gl_buffer_object *)
|
buffer_obj = (struct gl_buffer_object **)
|
||||||
((char *) ctx->Array.ArrayObj + d->offset);
|
((char *) ctx->Array.ArrayObj + d->offset);
|
||||||
v->value_int = buffer_obj->Name;
|
v->value_int = (*buffer_obj)->Name;
|
||||||
break;
|
break;
|
||||||
case GL_ARRAY_BUFFER_BINDING_ARB:
|
case GL_ARRAY_BUFFER_BINDING_ARB:
|
||||||
v->value_int = ctx->Array.ArrayBufferObj->Name;
|
v->value_int = ctx->Array.ArrayBufferObj->Name;
|
||||||
|
@@ -937,24 +937,35 @@ update_interval(GLint intBegin[], GLint intEnd[],
|
|||||||
GLuint index, GLuint ic)
|
GLuint index, GLuint ic)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
GLuint begin = ic;
|
||||||
|
GLuint end = ic;
|
||||||
|
|
||||||
/* If the register is used in a loop, extend its lifetime through the end
|
/* If the register is used in a loop, extend its lifetime through the end
|
||||||
* of the outermost loop that doesn't contain its definition.
|
* of the outermost loop that doesn't contain its definition.
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < loopStackDepth; i++) {
|
for (i = 0; i < loopStackDepth; i++) {
|
||||||
if (intBegin[index] < loopStack[i].Start) {
|
if (intBegin[index] < loopStack[i].Start) {
|
||||||
ic = loopStack[i].End;
|
end = loopStack[i].End;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Variables that are live at the end of a loop will also be live at the
|
||||||
|
* beginning, so an instruction inside of a loop should have its live
|
||||||
|
* interval begin at the start of the outermost loop.
|
||||||
|
*/
|
||||||
|
if (loopStackDepth > 0 && ic > loopStack[0].Start && ic < loopStack[0].End) {
|
||||||
|
begin = loopStack[0].Start;
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT(index < REG_ALLOCATE_MAX_PROGRAM_TEMPS);
|
ASSERT(index < REG_ALLOCATE_MAX_PROGRAM_TEMPS);
|
||||||
if (intBegin[index] == -1) {
|
if (intBegin[index] == -1) {
|
||||||
ASSERT(intEnd[index] == -1);
|
ASSERT(intEnd[index] == -1);
|
||||||
intBegin[index] = intEnd[index] = ic;
|
intBegin[index] = begin;
|
||||||
|
intEnd[index] = end;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
intEnd[index] = ic;
|
intEnd[index] = end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include "st_texture.h"
|
#include "st_texture.h"
|
||||||
#include "st_cb_blit.h"
|
#include "st_cb_blit.h"
|
||||||
#include "st_cb_fbo.h"
|
#include "st_cb_fbo.h"
|
||||||
|
#include "st_atom.h"
|
||||||
|
|
||||||
#include "util/u_blit.h"
|
#include "util/u_blit.h"
|
||||||
#include "util/u_inlines.h"
|
#include "util/u_inlines.h"
|
||||||
@@ -75,6 +76,8 @@ st_BlitFramebuffer(GLcontext *ctx,
|
|||||||
struct gl_framebuffer *readFB = ctx->ReadBuffer;
|
struct gl_framebuffer *readFB = ctx->ReadBuffer;
|
||||||
struct gl_framebuffer *drawFB = ctx->DrawBuffer;
|
struct gl_framebuffer *drawFB = ctx->DrawBuffer;
|
||||||
|
|
||||||
|
st_validate_state(st);
|
||||||
|
|
||||||
if (!_mesa_clip_blit(ctx, &srcX0, &srcY0, &srcX1, &srcY1,
|
if (!_mesa_clip_blit(ctx, &srcX0, &srcY0, &srcX1, &srcY1,
|
||||||
&dstX0, &dstY0, &dstX1, &dstY1)) {
|
&dstX0, &dstY0, &dstX1, &dstY1)) {
|
||||||
return; /* nothing to draw/blit */
|
return; /* nothing to draw/blit */
|
||||||
|
@@ -297,9 +297,11 @@ clear_with_quad(GLcontext *ctx,
|
|||||||
cso_set_fragment_shader_handle(st->cso_context, st->clear.fs);
|
cso_set_fragment_shader_handle(st->cso_context, st->clear.fs);
|
||||||
cso_set_vertex_shader_handle(st->cso_context, st->clear.vs);
|
cso_set_vertex_shader_handle(st->cso_context, st->clear.vs);
|
||||||
|
|
||||||
st_translate_color(ctx->Color.ClearColor,
|
if (ctx->DrawBuffer->_ColorDrawBuffers[0]) {
|
||||||
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
st_translate_color(ctx->Color.ClearColor,
|
||||||
clearColor);
|
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
||||||
|
clearColor);
|
||||||
|
}
|
||||||
|
|
||||||
/* draw quad matching scissor rect */
|
/* draw quad matching scissor rect */
|
||||||
draw_quad(st, x0, y0, x1, y1, (GLfloat) ctx->Depth.Clear, clearColor);
|
draw_quad(st, x0, y0, x1, y1, (GLfloat) ctx->Depth.Clear, clearColor);
|
||||||
@@ -551,9 +553,11 @@ st_Clear(GLcontext *ctx, GLbitfield mask)
|
|||||||
ctx->DrawBuffer->Visual.stencilBits == 0))
|
ctx->DrawBuffer->Visual.stencilBits == 0))
|
||||||
clear_buffers |= PIPE_CLEAR_DEPTHSTENCIL;
|
clear_buffers |= PIPE_CLEAR_DEPTHSTENCIL;
|
||||||
|
|
||||||
st_translate_color(ctx->Color.ClearColor,
|
if (ctx->DrawBuffer->_ColorDrawBuffers[0]) {
|
||||||
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
st_translate_color(ctx->Color.ClearColor,
|
||||||
clearColor);
|
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
||||||
|
clearColor);
|
||||||
|
}
|
||||||
|
|
||||||
st->pipe->clear(st->pipe, clear_buffers, ctx->Color.ClearColor,
|
st->pipe->clear(st->pipe, clear_buffers, ctx->Color.ClearColor,
|
||||||
ctx->Depth.Clear, ctx->Stencil.Clear);
|
ctx->Depth.Clear, ctx->Stencil.Clear);
|
||||||
|
@@ -74,6 +74,10 @@ st_renderbuffer_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
|
|||||||
else
|
else
|
||||||
format = st_choose_renderbuffer_format(screen, internalFormat, rb->NumSamples);
|
format = st_choose_renderbuffer_format(screen, internalFormat, rb->NumSamples);
|
||||||
|
|
||||||
|
if (format == PIPE_FORMAT_NONE) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* init renderbuffer fields */
|
/* init renderbuffer fields */
|
||||||
strb->Base.Width = width;
|
strb->Base.Width = width;
|
||||||
strb->Base.Height = height;
|
strb->Base.Height = height;
|
||||||
|
@@ -250,6 +250,7 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
|
|||||||
GLint firstStride = -1;
|
GLint firstStride = -1;
|
||||||
GLuint num_client_arrays = 0;
|
GLuint num_client_arrays = 0;
|
||||||
const GLubyte *client_addr = NULL;
|
const GLubyte *client_addr = NULL;
|
||||||
|
GLboolean user_memory;
|
||||||
|
|
||||||
for (attr = 0; attr < vpv->num_inputs; attr++) {
|
for (attr = 0; attr < vpv->num_inputs; attr++) {
|
||||||
const GLuint mesaAttr = vp->index_to_input[attr];
|
const GLuint mesaAttr = vp->index_to_input[attr];
|
||||||
@@ -258,6 +259,7 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
|
|||||||
|
|
||||||
if (firstStride < 0) {
|
if (firstStride < 0) {
|
||||||
firstStride = stride;
|
firstStride = stride;
|
||||||
|
user_memory = !bufObj || !bufObj->Name;
|
||||||
}
|
}
|
||||||
else if (firstStride != stride) {
|
else if (firstStride != stride) {
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
@@ -268,6 +270,9 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
|
|||||||
/* Try to detect if the client-space arrays are
|
/* Try to detect if the client-space arrays are
|
||||||
* "close" to each other.
|
* "close" to each other.
|
||||||
*/
|
*/
|
||||||
|
if (!user_memory) {
|
||||||
|
return GL_FALSE;
|
||||||
|
}
|
||||||
if (!client_addr) {
|
if (!client_addr) {
|
||||||
client_addr = arrays[mesaAttr]->Ptr;
|
client_addr = arrays[mesaAttr]->Ptr;
|
||||||
}
|
}
|
||||||
@@ -277,6 +282,9 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!firstBufObj) {
|
else if (!firstBufObj) {
|
||||||
|
if (user_memory) {
|
||||||
|
return GL_FALSE;
|
||||||
|
}
|
||||||
firstBufObj = bufObj;
|
firstBufObj = bufObj;
|
||||||
}
|
}
|
||||||
else if (bufObj != firstBufObj) {
|
else if (bufObj != firstBufObj) {
|
||||||
|
Reference in New Issue
Block a user