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/*/*/*/*.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 = \
|
||||
$(DIRECTORY)/include/GL/internal/dri_interface.h \
|
||||
$(DIRECTORY)/include/GL/internal/sarea.h \
|
||||
$(DIRECTORY)/src/glx/Makefile \
|
||||
$(DIRECTORY)/src/glx/*.[ch] \
|
||||
$(APPLE_DRI_FILES) \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
|
||||
$(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)
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.dylib
|
||||
GLU_LIB_NAME = libGLU.dylib
|
||||
GLUT_LIB_NAME = libglut.dylib
|
||||
GLW_LIB_NAME = libGLw.dylib
|
||||
OSMESA_LIB_NAME = libOSMesa.dylib
|
||||
GL_LIB_NAME = lib$(GL_LIB).dylib
|
||||
GLU_LIB_NAME = lib$(GLU_LIB).dylib
|
||||
GLUT_LIB_NAME = lib$(GLUT_LIB).dylib
|
||||
GLW_LIB_NAME = lib$(GLW_LIB).dylib
|
||||
OSMESA_LIB_NAME = lib$(OSMESA_LIB).dylib
|
||||
VG_LIB_NAME = lib$(VG_LIB).dylib
|
||||
|
||||
# globs used to install the lib and all symlinks
|
||||
GL_LIB_GLOB = libGL.*dylib
|
||||
GLU_LIB_GLOB = libGLU.*dylib
|
||||
GLUT_LIB_GLOB = libglut.*dylib
|
||||
GLW_LIB_GLOB = libGLw.*dylib
|
||||
OSMESA_LIB_GLOB = libOSMesa.*dylib
|
||||
GL_LIB_GLOB = lib$(GL_LIB).*dylib
|
||||
GLU_LIB_GLOB = lib$(GLU_LIB).*dylib
|
||||
GLUT_LIB_GLOB = lib$(GLUT_LIB).*dylib
|
||||
GLW_LIB_GLOB = lib$(GLW_LIB).*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
|
||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
OSMESA_LIB_DEPS =
|
||||
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
|
||||
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 = dri
|
||||
DRI_DIRS = swrast
|
||||
GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad failover
|
||||
#GALLIUM_DRIVERS_DIRS += llvmpipe
|
||||
|
@@ -10,7 +10,7 @@
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.9.2 Release Notes / TBD</H1>
|
||||
<H1>Mesa 7.9.2 Release Notes / March 2, 2011</H1>
|
||||
|
||||
<p>
|
||||
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>
|
||||
<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>
|
||||
|
||||
|
||||
|
@@ -741,8 +741,6 @@ void util_blitter_copy_region(struct blitter_context *blitter,
|
||||
if (dst == src) {
|
||||
assert(!is_overlap(srcx, srcx + width, srcy, srcy + height,
|
||||
dstx, dstx + width, dsty, dsty + height));
|
||||
} else {
|
||||
assert(dst->format == src->format);
|
||||
}
|
||||
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++) {
|
||||
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++) {
|
||||
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:
|
||||
return is_r500 ? 1 : 0;
|
||||
case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
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:
|
||||
return is_r500 ? 4 : 0; /* XXX guessed. */
|
||||
case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
|
||||
return 1;
|
||||
return 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@@ -2021,17 +2021,24 @@ ast_declarator_list::hir(exec_list *instructions,
|
||||
* preceded by one of these precision qualifiers [...] Literal
|
||||
* constants do not have precision qualifiers. Neither do Boolean
|
||||
* 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
|
||||
&& !var->type->is_float()
|
||||
&& !var->type->is_integer()
|
||||
&& !(var->type->is_sampler() && state->es_shader)
|
||||
&& !(var->type->is_array()
|
||||
&& (var->type->fields.array->is_float()
|
||||
|| var->type->fields.array->is_integer()))) {
|
||||
|
||||
_mesa_glsl_error(&loc, state,
|
||||
"precision qualifiers apply only to floating point "
|
||||
"and integer types");
|
||||
"precision qualifiers apply only to floating point"
|
||||
"%s types", state->es_shader ? ", integer, and sampler"
|
||||
: "and integer");
|
||||
}
|
||||
|
||||
/* Process the initializer and add its instructions to a temporary
|
||||
|
@@ -38,7 +38,7 @@ SOURCES = \
|
||||
appledri.c \
|
||||
../clientattrib.c \
|
||||
../compsize.c \
|
||||
../glcontextmodes.c \
|
||||
../glxconfig.c \
|
||||
glx_empty.c \
|
||||
glx_error.c \
|
||||
../glx_pbuffer.c \
|
||||
@@ -49,7 +49,8 @@ SOURCES = \
|
||||
../glxextensions.c \
|
||||
glxreply.c \
|
||||
../pixel.c \
|
||||
../xfont.c
|
||||
../xfont.c \
|
||||
../applegl_glx.c
|
||||
|
||||
include $(TOP)/src/mesa/sources.mak
|
||||
|
||||
|
@@ -44,7 +44,7 @@
|
||||
#include <pthread.h>
|
||||
#include <assert.h>
|
||||
#include "apple_glx.h"
|
||||
#include "glcontextmodes.h"
|
||||
#include "glxconfig.h"
|
||||
#include "apple_cgl.h"
|
||||
|
||||
/* mesa defines in glew.h, Apple in glext.h.
|
||||
@@ -128,7 +128,7 @@ apple_glx_pbuffer_create(Display * dpy, GLXFBConfig config,
|
||||
Window root;
|
||||
int screen;
|
||||
Pixmap xid;
|
||||
struct glx_config *modes = (__GLcontextModes *) config;
|
||||
struct glx_config *modes = (struct glx_config *) config;
|
||||
|
||||
root = DefaultRootWindow(dpy);
|
||||
screen = DefaultScreen(dpy);
|
||||
|
@@ -40,7 +40,7 @@
|
||||
#include "apple_visual.h"
|
||||
#include "apple_glx_drawable.h"
|
||||
#include "appledri.h"
|
||||
#include "glcontextmodes.h"
|
||||
#include "glxconfig.h"
|
||||
|
||||
static bool pixmap_make_current(struct apple_glx_context *ac,
|
||||
struct apple_glx_drawable *d);
|
||||
|
@@ -47,7 +47,7 @@
|
||||
#include "apple_cgl.h"
|
||||
#include "apple_visual.h"
|
||||
#include "apple_glx.h"
|
||||
#include "glcontextmodes.h"
|
||||
#include "glxconfig.h"
|
||||
|
||||
enum
|
||||
{
|
||||
|
@@ -48,7 +48,7 @@ struct apple_xgl_saved_state
|
||||
static void
|
||||
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
|
||||
@@ -81,7 +81,7 @@ static void
|
||||
UnsetRead(struct apple_xgl_saved_state *saved)
|
||||
{
|
||||
if (saved->swapped) {
|
||||
GLXContext gc = __glXGetCurrentContext();
|
||||
struct glx_context *gc = __glXGetCurrentContext();
|
||||
Display *dpy = glXGetCurrentDisplay();
|
||||
|
||||
if (apple_glx_make_current_context(dpy, gc->driContext, gc->driContext,
|
||||
|
@@ -49,7 +49,7 @@ extern struct apple_xgl_api __gl_api;
|
||||
void
|
||||
glDrawBuffer(GLenum mode)
|
||||
{
|
||||
GLXContext gc = glXGetCurrentContext();
|
||||
struct glx_context * gc = __glXGetCurrentContext();
|
||||
|
||||
if (gc && apple_glx_context_uses_stereo(gc->driContext)) {
|
||||
GLenum buf[2];
|
||||
@@ -84,7 +84,7 @@ glDrawBuffer(GLenum mode)
|
||||
void
|
||||
glDrawBuffers(GLsizei n, const GLenum * bufs)
|
||||
{
|
||||
GLXContext gc = glXGetCurrentContext();
|
||||
struct glx_context * gc = __glXGetCurrentContext();
|
||||
|
||||
if (gc && apple_glx_context_uses_stereo(gc->driContext)) {
|
||||
GLenum newbuf[n + 2];
|
||||
|
@@ -36,7 +36,7 @@ extern struct apple_xgl_api __gl_api;
|
||||
void
|
||||
glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
|
||||
{
|
||||
GLXContext gc = __glXGetCurrentContext();
|
||||
struct glx_context *gc = __glXGetCurrentContext();
|
||||
Display *dpy = glXGetCurrentDisplay();
|
||||
|
||||
if (gc && gc->driContext)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#include "glxclient.h"
|
||||
#include "glxextensions.h"
|
||||
#include "glcontextmodes.h"
|
||||
#include "glxconfig.h"
|
||||
|
||||
/*
|
||||
** GLX_SGI_swap_control
|
||||
|
@@ -27,22 +27,24 @@
|
||||
prior written authorization.
|
||||
*/
|
||||
#include <stdbool.h>
|
||||
#include <assert.h>
|
||||
#include <X11/Xlibint.h>
|
||||
#include <X11/extensions/extutil.h>
|
||||
#include <X11/extensions/Xext.h>
|
||||
#include "glxclient.h"
|
||||
#include "glx_error.h"
|
||||
|
||||
extern XExtDisplayInfo *__glXFindDisplay(Display * dpy);
|
||||
|
||||
void
|
||||
__glXSendError(Display * dpy, int errorCode, unsigned long resourceID,
|
||||
unsigned long minorCode, bool coreX11error)
|
||||
{
|
||||
XExtDisplayInfo *info = __glXFindDisplay(dpy);
|
||||
GLXContext gc = __glXGetCurrentContext();
|
||||
struct glx_display *glx_dpy = __glXInitialize(dpy);
|
||||
struct glx_context *gc = __glXGetCurrentContext();
|
||||
xError error;
|
||||
|
||||
assert(glx_dpy);
|
||||
assert(gc);
|
||||
|
||||
LockDisplay(dpy);
|
||||
|
||||
error.type = X_Error;
|
||||
@@ -51,7 +53,7 @@ __glXSendError(Display * dpy, int errorCode, unsigned long resourceID,
|
||||
error.errorCode = errorCode;
|
||||
}
|
||||
else {
|
||||
error.errorCode = info->codes->first_error + errorCode;
|
||||
error.errorCode = glx_dpy->codes->first_error + errorCode;
|
||||
}
|
||||
|
||||
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
|
||||
#
|
||||
# $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).
|
||||
#
|
||||
@@ -1380,7 +1380,7 @@ VERSION_3_1 enum:
|
||||
passthru: /* Reuse tokens from ARB_copy_buffer */
|
||||
use ARB_copy_buffer COPY_READ_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 */
|
||||
use ARB_uniform_buffer_object UNIFORM_BUFFER
|
||||
use ARB_uniform_buffer_object UNIFORM_BUFFER_BINDING
|
||||
@@ -1447,8 +1447,8 @@ VERSION_3_2 enum:
|
||||
use ARB_framebuffer_object FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
|
||||
passthru: /* Reuse tokens from ARB_depth_clamp */
|
||||
use ARB_depth_clamp DEPTH_CLAMP
|
||||
passthru: /* Would reuse tokens from ARB_draw_elements_base_vertex, but it has none */
|
||||
passthru: /* Would reuse tokens from ARB_fragment_coord_conventions, but it has none */
|
||||
passthru: /* Reuse tokens from ARB_draw_elements_base_vertex (none) */
|
||||
passthru: /* Reuse tokens from ARB_fragment_coord_conventions (none) */
|
||||
passthru: /* Reuse tokens from ARB_provoking_vertex */
|
||||
use ARB_provoking_vertex QUADS_FOLLOW_PROVOKING_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:
|
||||
VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE # ARB_instanced_arrays
|
||||
passthru: /* Reuse tokens from ARB_blend_func_extended */
|
||||
use ARB_blend_func_extended 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 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 */
|
||||
use ARB_occlusion_query2 ANY_SAMPLES_PASSED
|
||||
passthru: /* Reuse tokens from ARB_sampler_objects */
|
||||
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 */
|
||||
use ARB_texture_rgb10_a2ui RGB10_A2UI
|
||||
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:
|
||||
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 */
|
||||
use ARB_draw_indirect DRAW_INDIRECT_BUFFER
|
||||
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 TESS_EVALUATION_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 */
|
||||
use ARB_tessellation_shader TRANSFORM_FEEDBACK
|
||||
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_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_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
|
||||
# ARB Extension #69
|
||||
ARB_draw_buffers_blend enum:
|
||||
#@@@ Add ARB suffixes here & functions!
|
||||
|
||||
###############################################################################
|
||||
|
||||
# ARB Extension #70
|
||||
#@@@ Add ARB suffixes here & functions!
|
||||
ARB_sample_shading enum:
|
||||
SAMPLE_SHADING = 0x8C36
|
||||
MIN_SAMPLE_SHADING_VALUE = 0x8C37
|
||||
SAMPLE_SHADING_ARB = 0x8C36
|
||||
MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37
|
||||
|
||||
###############################################################################
|
||||
|
||||
# ARB Extension #71
|
||||
#@@@ Add ARB suffixes here & functions!
|
||||
ARB_texture_cube_map_array enum:
|
||||
TEXTURE_CUBE_MAP_ARRAY = 0x9009
|
||||
TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
|
||||
PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
|
||||
SAMPLER_CUBE_MAP_ARRAY = 0x900C
|
||||
SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
|
||||
INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
|
||||
UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
|
||||
TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009
|
||||
TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A
|
||||
PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B
|
||||
SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C
|
||||
SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D
|
||||
INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
|
||||
UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F
|
||||
|
||||
###############################################################################
|
||||
|
||||
# ARB Extension #72
|
||||
#@@@ Add ARB suffixes here & functions!
|
||||
ARB_texture_gather enum:
|
||||
MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
|
||||
MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
|
||||
@@ -2792,7 +2849,7 @@ ARB_gpu_shader5 enum:
|
||||
MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
|
||||
MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
|
||||
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_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
|
||||
# (extends ATI_element_array???)
|
||||
APPLE_element_array enum:
|
||||
ELEMENT_ARRAY_APPLE = 0x8768
|
||||
ELEMENT_ARRAY_TYPE_APPLE = 0x8769
|
||||
ELEMENT_ARRAY_POINTER_APPLE = 0x876A
|
||||
ELEMENT_ARRAY_APPLE = 0x8A0C
|
||||
ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D
|
||||
ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -5387,12 +5586,12 @@ APPLE_vertex_array_object enum:
|
||||
###############################################################################
|
||||
|
||||
# Extension #274
|
||||
# (How does this interact with NV_vertex_array_range???)
|
||||
APPLE_vertex_array_range enum:
|
||||
VERTEX_ARRAY_RANGE_APPLE = 0x851D
|
||||
VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E
|
||||
VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F
|
||||
VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521
|
||||
STORAGE_CLIENT_APPLE = 0x85B4
|
||||
STORAGE_CACHED_APPLE = 0x85BE
|
||||
STORAGE_SHARED_APPLE = 0x85BF
|
||||
|
||||
@@ -6083,6 +6282,12 @@ NV_transform_feedback enum:
|
||||
SEPARATE_ATTRIBS_NV = 0x8C8D
|
||||
TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E
|
||||
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
|
||||
FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
|
||||
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
|
||||
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
|
||||
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,*,*
|
||||
UInt64EXT,*,*, GLuint64EXT,*,*
|
||||
# EXT_direct_state_access
|
||||
FramebufferAttachment,*,*, GLenum,*,*
|
||||
FramebufferAttachmentParameterName,*,*, GLenum,*,*
|
||||
Framebuffer,*,*, GLuint,*,*
|
||||
FramebufferStatus,*,*, GLenum,*,*
|
||||
FramebufferTarget,*,*, GLenum,*,*
|
||||
GetFramebufferParameter,*,*, GLenum,*,*
|
||||
Intptr,*,*, GLintptr,*,*
|
||||
ProgramFormat,*,*, GLenum,*,*
|
||||
ProgramProperty,*,*, GLenum,*,*
|
||||
ProgramStringProperty,*,*, GLenum,*,*
|
||||
ProgramTarget,*,*, GLenum,*,*
|
||||
Renderbuffer,*,*, GLuint,*,*
|
||||
RenderbufferParameterName,*,*, GLenum,*,*
|
||||
Sizeiptr,*,*, GLsizeiptr,*,*
|
||||
@@ -320,3 +317,12 @@ BufferAccessMask,*,*, GLbitfield,*,*
|
||||
# NV_explicit_multisample
|
||||
GetMultisamplePNameNV,*,*, GLenum,*,*
|
||||
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
|
||||
# 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.
|
||||
#
|
||||
@@ -126,15 +126,17 @@ GLXBindToTextureTargetMask enum:
|
||||
TEXTURE_2D_BIT_EXT = 0x00000002
|
||||
TEXTURE_RECTANGLE_BIT_EXT = 0x00000004
|
||||
|
||||
# CONTEXT_FLAGS_ARB bits
|
||||
# CONTEXT_FLAGS_ARB bits (shared with WGL and GL)
|
||||
GLXContextFlags enum:
|
||||
CONTEXT_DEBUG_BIT_ARB = 0x00000001 # 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
|
||||
GLXContextProfileMask enum:
|
||||
CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001 # 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:
|
||||
USE_GL = 1 # Visual attributes
|
||||
@@ -250,16 +252,29 @@ GLXAttribute enum:
|
||||
SAMPLES_ARB = 100001 # "
|
||||
SAMPLE_BUFFERS = 100000 # Visual attribute (GLX 1.4 core - alias of SGIS_multisample)
|
||||
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
|
||||
# ARB_create_context enum:
|
||||
CONTEXT_MAJOR_VERSION_ARB = 0x2091
|
||||
CONTEXT_MINOR_VERSION_ARB = 0x2092
|
||||
# 0x2093 used for WGL_CONTEXT_LAYER_PLANE_ARB
|
||||
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
|
||||
# EXT_fbconfig_packed_float enum:
|
||||
RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1
|
||||
# ARB_framebuffer_sRGB enum:
|
||||
FRAMEBUFFER_SRGB_CAPABLE_ARB = 0x20B2
|
||||
# EXT_framebuffer_sRGB enum:
|
||||
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:
|
||||
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_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
|
||||
### to the Khronos API Registrar (see comments at the top of this file)
|
||||
### 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
|
||||
# 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
|
||||
|
||||
# Any_vendor_future_use: 0x9127-0xFFFF
|
||||
#
|
||||
# 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,
|
||||
# and extensions.reserved.
|
||||
|
@@ -4,7 +4,7 @@
|
||||
# This document is licensed under the SGI Free Software B License Version
|
||||
# 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
|
||||
#
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
passthru:
|
||||
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: #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_fbconfig_float enum:
|
||||
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_create_context enum:
|
||||
CONTEXT_DEBUG_BIT_ARB = 0x00000001
|
||||
@@ -147,6 +159,15 @@ ARB_create_context_profile enum:
|
||||
CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002
|
||||
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
|
||||
COPY_COMPLETE_INTEL = 0x8181
|
||||
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
|
||||
# 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:
|
||||
param: retval retained
|
||||
glxflags: client-handcode client-intercept server-handcode
|
||||
glxvendorglx: *
|
||||
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: *
|
||||
|
||||
#
|
||||
@@ -312,6 +312,16 @@ newcategory: ARB_multisample
|
||||
# (none)
|
||||
newcategory: ARB_fbconfig_float
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# ARB Extension #46
|
||||
# ARB_framebuffer_sRGB commands
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# (none)
|
||||
newcategory: ARB_framebuffer_sRGB
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# ARB Extension #56
|
||||
@@ -340,6 +350,16 @@ CreateContextAttribsARB(dpy, config, share_context, direct, attrib_list)
|
||||
# (none)
|
||||
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)
|
||||
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 © 2011 Apple Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Soft-
|
||||
@@ -32,23 +33,31 @@
|
||||
|
||||
#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
|
||||
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
|
||||
applegl_bind_context(struct glx_context *gc, struct glx_context *old,
|
||||
GLXDrawable draw, GLXDrawable read)
|
||||
{
|
||||
Display *dpy = gc->psc->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);
|
||||
|
||||
apple_glx_diagnostic("%s: error %s\n", __func__, error ? "YES" : "NO");
|
||||
if (error)
|
||||
return GLXBadContext;
|
||||
return 1; /* GLXBadContext is the same as Success (0) */
|
||||
|
||||
return Success;
|
||||
}
|
||||
@@ -67,7 +76,8 @@ applegl_wait_gl(struct glx_context *gc)
|
||||
static void
|
||||
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 = {
|
||||
@@ -81,34 +91,34 @@ static const struct glx_context_vtable applegl_context_vtable = {
|
||||
NULL, /* release_tex_image, */
|
||||
};
|
||||
|
||||
static struct glx_context *
|
||||
struct glx_context *
|
||||
applegl_create_context(struct glx_screen *psc,
|
||||
struct glx_config *mode,
|
||||
struct glx_config *config,
|
||||
struct glx_context *shareList, int renderType)
|
||||
{
|
||||
struct glx_context *gc;
|
||||
int errorcode;
|
||||
bool x11error;
|
||||
Display *dpy = psc->dpy;
|
||||
int screen = psc->scr;
|
||||
|
||||
/* TODO: Integrate this with apple_glx_create_context and make
|
||||
* struct apple_glx_context inherit from struct glx_context. */
|
||||
|
||||
gc = Xmalloc(sizeof *gc);
|
||||
if (pcp == NULL)
|
||||
gc = Xcalloc(1, sizeof (*gc));
|
||||
if (gc == NULL)
|
||||
return NULL;
|
||||
|
||||
memset(gc, 0, sizeof *gc);
|
||||
if (!glx_context_init(&gc->base, &psc->base, mode)) {
|
||||
if (!glx_context_init(gc, psc, config)) {
|
||||
Xfree(gc);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gc->vtable = &applegl_context_vtable;
|
||||
gc->driContext = NULL;
|
||||
gc->do_destroy = False;
|
||||
|
||||
/* 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,
|
||||
&errorcode, &x11error)) {
|
||||
__glXSendError(dpy, errorcode, 0, X_GLXCreateContext, x11error);
|
||||
@@ -117,15 +127,15 @@ applegl_create_context(struct glx_screen *psc,
|
||||
}
|
||||
|
||||
gc->currentContextTag = -1;
|
||||
gc->mode = fbconfig;
|
||||
gc->isDirect = allowDirect;
|
||||
gc->config = config;
|
||||
gc->isDirect = GL_TRUE;
|
||||
gc->xid = 1; /* Just something not None, so we know when to destroy
|
||||
* it in MakeContextCurrent. */
|
||||
|
||||
return gc;
|
||||
}
|
||||
|
||||
struct glx_screen_vtable appegl_screen_vtable = {
|
||||
struct glx_screen_vtable applegl_screen_vtable = {
|
||||
applegl_create_context
|
||||
};
|
||||
|
||||
@@ -146,10 +156,12 @@ applegl_create_screen(int screen, struct glx_display * priv)
|
||||
}
|
||||
|
||||
_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 */
|
||||
apple_init_glx(display);
|
||||
if(!apple_init_glx(glx_dpy->dpy))
|
||||
return 1;
|
||||
|
||||
return GLXBadContext;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -843,7 +843,7 @@ glXCreatePixmap(Display * dpy, GLXFBConfig config, Pixmap pixmap,
|
||||
WARN_ONCE_GLX_1_3(dpy, __func__);
|
||||
|
||||
#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))
|
||||
return None;
|
||||
|
@@ -342,6 +342,10 @@ struct glx_context
|
||||
*/
|
||||
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
|
||||
* current to any display, or if this is the "dummy context".
|
||||
@@ -771,7 +775,19 @@ GarbageCollectDRIDrawables(struct glx_screen *psc);
|
||||
|
||||
extern __GLXDRIdrawable *
|
||||
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
|
||||
|
||||
extern struct glx_context dummyContext;
|
||||
|
@@ -228,10 +228,14 @@ CreateContext(Display * dpy, int generic_id,
|
||||
return NULL;
|
||||
|
||||
gc = NULL;
|
||||
#ifdef GLX_USE_APPLEGL
|
||||
gc = applegl_create_context(psc, config, shareList, renderType);
|
||||
#else
|
||||
if (allowDirect && psc->vtable->create_context)
|
||||
gc = psc->vtable->create_context(psc, config, shareList, renderType);
|
||||
if (!gc)
|
||||
gc = indirect_create_context(psc, config, shareList, renderType);
|
||||
#endif
|
||||
if (!gc)
|
||||
return NULL;
|
||||
|
||||
@@ -606,7 +610,7 @@ glXCreateGLXPixmap(Display * dpy, XVisualInfo * vis, Pixmap pixmap)
|
||||
struct glx_screen *const psc = GetGLXScreenConfigs(dpy, screen);
|
||||
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))
|
||||
return None;
|
||||
@@ -710,7 +714,7 @@ _X_EXPORT void
|
||||
glXSwapBuffers(Display * dpy, GLXDrawable drawable)
|
||||
{
|
||||
#ifdef GLX_USE_APPLEGL
|
||||
GLXContext gc = glXGetCurrentContext();
|
||||
struct glx_context * gc = __glXGetCurrentContext();
|
||||
if(gc && apple_glx_is_current_drawable(dpy, gc->driContext, drawable)) {
|
||||
apple_glx_swap_buffers(gc->driContext);
|
||||
} else {
|
||||
|
@@ -160,12 +160,10 @@ _X_HIDDEN void
|
||||
__glXSetCurrentContextNull(void)
|
||||
{
|
||||
__glXSetCurrentContext(&dummyContext);
|
||||
#ifndef GLX_USE_APPLEGL
|
||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||
_glapi_set_dispatch(NULL); /* no-op functions */
|
||||
_glapi_set_context(NULL);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
_X_EXPORT GLXContext
|
||||
@@ -234,6 +232,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
return False;
|
||||
}
|
||||
|
||||
#ifndef GLX_USE_APPLEGL
|
||||
_glapi_check_multithread();
|
||||
|
||||
if (gc != NULL && gc->thread_id != 0 && gc->thread_id != _glthread_GetID()) {
|
||||
@@ -241,6 +240,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
BadAccess, X_GLXMakeContextCurrent);
|
||||
return False;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (oldGC == gc &&
|
||||
gc->currentDrawable == draw && gc->currentReadable == read)
|
||||
@@ -258,7 +258,9 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
gc->currentDpy = dpy;
|
||||
gc->currentDrawable = draw;
|
||||
gc->currentReadable = read;
|
||||
#ifndef GLX_USE_APPLEGL
|
||||
gc->thread_id = _glthread_GetID();
|
||||
#endif
|
||||
__glXSetCurrentContext(gc);
|
||||
ret = gc->vtable->bind(gc, oldGC, draw, read);
|
||||
} else {
|
||||
|
@@ -764,11 +764,12 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv)
|
||||
psc = (*priv->driswDisplay->createScreen) (i, priv);
|
||||
#endif
|
||||
#if defined(GLX_USE_APPLEGL)
|
||||
if (psc == NULL && priv->appleglDisplay)
|
||||
psc = (*priv->appleglDisplay->createScreen) (i, priv);
|
||||
#endif
|
||||
if (psc == NULL)
|
||||
psc = applegl_create_screen(i, priv);
|
||||
#else
|
||||
if (psc == NULL)
|
||||
psc = indirect_create_screen(i, priv);
|
||||
#endif
|
||||
priv->screens[i] = psc;
|
||||
}
|
||||
SyncHandle();
|
||||
|
@@ -98,9 +98,6 @@ static int r300_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg)
|
||||
unsigned int relevant;
|
||||
int j;
|
||||
|
||||
if (reg.Abs)
|
||||
reg.Negate = RC_MASK_NONE;
|
||||
|
||||
if (opcode == RC_OPCODE_KIL ||
|
||||
opcode == RC_OPCODE_TEX ||
|
||||
opcode == RC_OPCODE_TXB ||
|
||||
@@ -142,9 +139,6 @@ static void r300_swizzle_split(
|
||||
struct rc_src_register src, unsigned int mask,
|
||||
struct rc_swizzle_split * split)
|
||||
{
|
||||
if (src.Abs)
|
||||
src.Negate = RC_MASK_NONE;
|
||||
|
||||
split->NumPhases = 0;
|
||||
|
||||
while(mask) {
|
||||
|
@@ -272,6 +272,7 @@ static void ei_mad(struct r300_vertex_program_code *vp,
|
||||
struct rc_sub_instruction *vpi,
|
||||
unsigned int * inst)
|
||||
{
|
||||
unsigned int i;
|
||||
/* Remarks about hardware limitations of MAD
|
||||
* (please preserve this comment, as this information is _NOT_
|
||||
* 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_mask(vpi->DstReg.WriteMask),
|
||||
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[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))
|
||||
return 0;
|
||||
|
||||
if (reg.Negate)
|
||||
reg.Negate ^= RC_MASK_XYZW;
|
||||
|
||||
for(i = 0; i < 4; ++i) {
|
||||
unsigned int swz = GET_SWZ(reg.Swizzle, i);
|
||||
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;
|
||||
} else {
|
||||
/* ALU instructions support almost everything */
|
||||
if (reg.Abs)
|
||||
return 1;
|
||||
|
||||
relevant = 0;
|
||||
for(i = 0; i < 3; ++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)
|
||||
| R500_INST_TEX_SEM_WAIT;
|
||||
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)
|
||||
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);
|
||||
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)
|
||||
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++) {
|
||||
struct rc_src_register src = inst->U.I.SrcReg[i];
|
||||
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) {
|
||||
unsigned int srcrgb = 0;
|
||||
unsigned int srcalpha = 0;
|
||||
unsigned int srcmask = 0;
|
||||
int j;
|
||||
/* We don't care about the alpha channel here. We only
|
||||
* want the part of the swizzle that writes to rgb,
|
||||
* since we are creating an rgb instruction. */
|
||||
for(j = 0; j < 3; ++j) {
|
||||
unsigned int swz = GET_SWZ(inst->SrcReg[i].Swizzle, j);
|
||||
if (swz < 3)
|
||||
|
||||
if (swz < RC_SWIZZLE_W)
|
||||
srcrgb = 1;
|
||||
else if (swz < 4)
|
||||
else if (swz == RC_SWIZZLE_W)
|
||||
srcalpha = 1;
|
||||
|
||||
if (swz < RC_SWIZZLE_UNUSED)
|
||||
srcmask |= 1 << j;
|
||||
}
|
||||
source = rc_pair_alloc_source(pair, srcrgb, srcalpha,
|
||||
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].Swizzle = inst->SrcReg[i].Swizzle & 0x1ff;
|
||||
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) {
|
||||
unsigned int srcrgb = 0;
|
||||
|
@@ -29,20 +29,34 @@
|
||||
|
||||
/* Series of transformations to be done on textures. */
|
||||
|
||||
static struct rc_src_register shadow_ambient(struct r300_fragment_program_compiler *compiler,
|
||||
int tmu)
|
||||
static struct rc_src_register shadow_fail_value(struct r300_fragment_program_compiler *compiler,
|
||||
int tmu)
|
||||
{
|
||||
struct rc_src_register reg = { 0, };
|
||||
|
||||
if (compiler->enable_shadow_ambient) {
|
||||
reg.File = RC_FILE_CONSTANT;
|
||||
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;
|
||||
} else {
|
||||
reg.File = RC_FILE_NONE;
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -138,89 +152,92 @@ int radeonTransformTEX(
|
||||
inst->U.I.Opcode = RC_OPCODE_MOV;
|
||||
|
||||
if (comparefunc == RC_COMPARE_FUNC_ALWAYS) {
|
||||
inst->U.I.SrcReg[0].File = RC_FILE_NONE;
|
||||
inst->U.I.SrcReg[0].Swizzle = RC_SWIZZLE_1111;
|
||||
inst->U.I.SrcReg[0] = shadow_pass_value(compiler, inst->U.I.TexSrcUnit);
|
||||
} 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;
|
||||
} 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_mad;
|
||||
struct rc_instruction * inst_cmp;
|
||||
struct rc_instruction *inst_mul, *inst_add, *inst_cmp;
|
||||
unsigned tmp_texsample;
|
||||
unsigned tmp_sum;
|
||||
unsigned tmp_recip_w = 0;
|
||||
int pass, fail, tex;
|
||||
int pass, fail;
|
||||
|
||||
/* Save the output register. */
|
||||
struct rc_dst_register output_reg = inst->U.I.DstReg;
|
||||
unsigned saturate_mode = inst->U.I.SaturateMode;
|
||||
|
||||
/* Redirect TEX to a new temp. */
|
||||
tmp_texsample = rc_find_free_temporary(c);
|
||||
inst->U.I.SaturateMode = 0;
|
||||
inst->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||
inst->U.I.DstReg.Index = tmp_texsample;
|
||||
inst->U.I.DstReg.WriteMask = RC_MASK_XYZW;
|
||||
|
||||
if (inst->U.I.Opcode == RC_OPCODE_TXP) {
|
||||
tmp_recip_w = rc_find_free_temporary(c);
|
||||
tmp_sum = rc_find_free_temporary(c);
|
||||
|
||||
if (inst->U.I.Opcode == RC_OPCODE_TXP) {
|
||||
/* Compute 1/W. */
|
||||
inst_rcp = rc_insert_new_instruction(c, inst);
|
||||
inst_rcp->U.I.Opcode = RC_OPCODE_RCP;
|
||||
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.SrcReg[0] = inst->U.I.SrcReg[0];
|
||||
inst_rcp->U.I.SrcReg[0].Swizzle =
|
||||
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). */
|
||||
tmp_sum = rc_find_free_temporary(c);
|
||||
inst_mad = rc_insert_new_instruction(c, inst_rcp ? inst_rcp : inst);
|
||||
inst_mad->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||
inst_mad->U.I.DstReg.Index = tmp_sum;
|
||||
inst_mad->U.I.SrcReg[0] = inst->U.I.SrcReg[0];
|
||||
inst_mad->U.I.SrcReg[0].Swizzle =
|
||||
/* Divide Z by W (if it's TXP) and saturate. */
|
||||
inst_mul = 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_mul->U.I.DstReg.File = RC_FILE_TEMPORARY;
|
||||
inst_mul->U.I.DstReg.Index = tmp_sum;
|
||||
inst_mul->U.I.DstReg.WriteMask = RC_MASK_W;
|
||||
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));
|
||||
if (inst->U.I.Opcode == RC_OPCODE_TXP) {
|
||||
inst_mad->U.I.Opcode = RC_OPCODE_MAD;
|
||||
inst_mad->U.I.SrcReg[1].File = RC_FILE_TEMPORARY;
|
||||
inst_mad->U.I.SrcReg[1].Index = tmp_recip_w;
|
||||
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;
|
||||
inst_mul->U.I.SrcReg[1].File = RC_FILE_TEMPORARY;
|
||||
inst_mul->U.I.SrcReg[1].Index = tmp_sum;
|
||||
inst_mul->U.I.SrcReg[1].Swizzle = RC_SWIZZLE_WWWW;
|
||||
}
|
||||
|
||||
/* 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
|
||||
* GEQUAL: r >= tex <=> not (-tex+r < 0)
|
||||
* GREATER: r > tex <=> tex-r < 0
|
||||
* LEQUAL: r <= tex <=> not ( tex-r < 0)
|
||||
*
|
||||
* This negates either r or tex: */
|
||||
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;
|
||||
* EQUAL: GEQUAL
|
||||
* NOTEQUAL:LESS
|
||||
*/
|
||||
|
||||
/* 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
|
||||
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: */
|
||||
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;
|
||||
fail = 2;
|
||||
} else {
|
||||
@@ -228,16 +245,19 @@ int radeonTransformTEX(
|
||||
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.SaturateMode = saturate_mode;
|
||||
inst_cmp->U.I.DstReg = output_reg;
|
||||
inst_cmp->U.I.SrcReg[0].File = RC_FILE_TEMPORARY;
|
||||
inst_cmp->U.I.SrcReg[0].Index = tmp_sum;
|
||||
inst_cmp->U.I.SrcReg[pass].File = RC_FILE_NONE;
|
||||
inst_cmp->U.I.SrcReg[pass].Swizzle = RC_SWIZZLE_1111;
|
||||
inst_cmp->U.I.SrcReg[fail] = shadow_ambient(compiler, inst->U.I.TexSrcUnit);
|
||||
inst_cmp->U.I.SrcReg[0].Swizzle =
|
||||
combine_swizzles(RC_SWIZZLE_WWWW,
|
||||
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 &&
|
||||
(inst->U.I.DstReg.File != RC_FILE_TEMPORARY ||
|
||||
inst->U.I.SaturateMode ||
|
||||
(!c->is_r500 && inst->U.I.DstReg.WriteMask != RC_MASK_XYZW))) {
|
||||
struct rc_instruction * inst_mov = rc_insert_new_instruction(c, inst);
|
||||
|
||||
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.SrcReg[0].File = RC_FILE_TEMPORARY;
|
||||
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.Index = inst_mov->U.I.SrcReg[0].Index;
|
||||
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_GenProgramsNV(table, _mesa_GenPrograms);
|
||||
SET_IsProgramNV(table, _mesa_IsProgramARB);
|
||||
SET_GetVertexAttribdvNV(table, _mesa_GetVertexAttribdvNV);
|
||||
SET_GetVertexAttribfvNV(table, _mesa_GetVertexAttribfvNV);
|
||||
SET_GetVertexAttribivNV(table, _mesa_GetVertexAttribivNV);
|
||||
SET_GetVertexAttribdvARB(table, _mesa_GetVertexAttribdvARB);
|
||||
SET_GetVertexAttribfvARB(table, _mesa_GetVertexAttribfvARB);
|
||||
SET_GetVertexAttribivARB(table, _mesa_GetVertexAttribivARB);
|
||||
SET_GetVertexAttribPointervNV(table, _mesa_GetVertexAttribPointervNV);
|
||||
SET_ProgramEnvParameter4dARB(table, save_ProgramEnvParameter4dARB);
|
||||
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_TYPE, ARRAY_ENUM(Vertex.Type), 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_STRIDE, ARRAY_INT(Normal.Stride), 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,
|
||||
LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Enabled), NO_EXTRA },
|
||||
{ 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,
|
||||
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,
|
||||
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_SHADER_COMPILER, CONST(1), extra_ARB_ES2_compatibility },
|
||||
@@ -1402,7 +1402,7 @@ void _mesa_init_get_hash(GLcontext *ctx)
|
||||
static void
|
||||
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;
|
||||
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_SECONDARY_COLOR_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);
|
||||
v->value_int = buffer_obj->Name;
|
||||
v->value_int = (*buffer_obj)->Name;
|
||||
break;
|
||||
case GL_ARRAY_BUFFER_BINDING_ARB:
|
||||
v->value_int = ctx->Array.ArrayBufferObj->Name;
|
||||
|
@@ -937,24 +937,35 @@ update_interval(GLint intBegin[], GLint intEnd[],
|
||||
GLuint index, GLuint ic)
|
||||
{
|
||||
int i;
|
||||
GLuint begin = ic;
|
||||
GLuint end = ic;
|
||||
|
||||
/* If the register is used in a loop, extend its lifetime through the end
|
||||
* of the outermost loop that doesn't contain its definition.
|
||||
*/
|
||||
for (i = 0; i < loopStackDepth; i++) {
|
||||
if (intBegin[index] < loopStack[i].Start) {
|
||||
ic = loopStack[i].End;
|
||||
end = loopStack[i].End;
|
||||
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);
|
||||
if (intBegin[index] == -1) {
|
||||
ASSERT(intEnd[index] == -1);
|
||||
intBegin[index] = intEnd[index] = ic;
|
||||
intBegin[index] = begin;
|
||||
intEnd[index] = end;
|
||||
}
|
||||
else {
|
||||
intEnd[index] = ic;
|
||||
intEnd[index] = end;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -38,6 +38,7 @@
|
||||
#include "st_texture.h"
|
||||
#include "st_cb_blit.h"
|
||||
#include "st_cb_fbo.h"
|
||||
#include "st_atom.h"
|
||||
|
||||
#include "util/u_blit.h"
|
||||
#include "util/u_inlines.h"
|
||||
@@ -75,6 +76,8 @@ st_BlitFramebuffer(GLcontext *ctx,
|
||||
struct gl_framebuffer *readFB = ctx->ReadBuffer;
|
||||
struct gl_framebuffer *drawFB = ctx->DrawBuffer;
|
||||
|
||||
st_validate_state(st);
|
||||
|
||||
if (!_mesa_clip_blit(ctx, &srcX0, &srcY0, &srcX1, &srcY1,
|
||||
&dstX0, &dstY0, &dstX1, &dstY1)) {
|
||||
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_vertex_shader_handle(st->cso_context, st->clear.vs);
|
||||
|
||||
st_translate_color(ctx->Color.ClearColor,
|
||||
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
||||
clearColor);
|
||||
if (ctx->DrawBuffer->_ColorDrawBuffers[0]) {
|
||||
st_translate_color(ctx->Color.ClearColor,
|
||||
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
||||
clearColor);
|
||||
}
|
||||
|
||||
/* draw quad matching scissor rect */
|
||||
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))
|
||||
clear_buffers |= PIPE_CLEAR_DEPTHSTENCIL;
|
||||
|
||||
st_translate_color(ctx->Color.ClearColor,
|
||||
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
||||
clearColor);
|
||||
if (ctx->DrawBuffer->_ColorDrawBuffers[0]) {
|
||||
st_translate_color(ctx->Color.ClearColor,
|
||||
ctx->DrawBuffer->_ColorDrawBuffers[0]->_BaseFormat,
|
||||
clearColor);
|
||||
}
|
||||
|
||||
st->pipe->clear(st->pipe, clear_buffers, ctx->Color.ClearColor,
|
||||
ctx->Depth.Clear, ctx->Stencil.Clear);
|
||||
|
@@ -74,6 +74,10 @@ st_renderbuffer_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
|
||||
else
|
||||
format = st_choose_renderbuffer_format(screen, internalFormat, rb->NumSamples);
|
||||
|
||||
if (format == PIPE_FORMAT_NONE) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* init renderbuffer fields */
|
||||
strb->Base.Width = width;
|
||||
strb->Base.Height = height;
|
||||
|
@@ -250,6 +250,7 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
|
||||
GLint firstStride = -1;
|
||||
GLuint num_client_arrays = 0;
|
||||
const GLubyte *client_addr = NULL;
|
||||
GLboolean user_memory;
|
||||
|
||||
for (attr = 0; attr < vpv->num_inputs; 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) {
|
||||
firstStride = stride;
|
||||
user_memory = !bufObj || !bufObj->Name;
|
||||
}
|
||||
else if (firstStride != stride) {
|
||||
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
|
||||
* "close" to each other.
|
||||
*/
|
||||
if (!user_memory) {
|
||||
return GL_FALSE;
|
||||
}
|
||||
if (!client_addr) {
|
||||
client_addr = arrays[mesaAttr]->Ptr;
|
||||
}
|
||||
@@ -277,6 +282,9 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
|
||||
}
|
||||
}
|
||||
else if (!firstBufObj) {
|
||||
if (user_memory) {
|
||||
return GL_FALSE;
|
||||
}
|
||||
firstBufObj = bufObj;
|
||||
}
|
||||
else if (bufObj != firstBufObj) {
|
||||
|
Reference in New Issue
Block a user