mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
Merge branch 'mesa_7_6_branch' into mesa_7_7_branch
Conflicts: src/gallium/auxiliary/util/u_network.c src/gallium/auxiliary/util/u_network.h src/gallium/drivers/i915/i915_state.c src/gallium/drivers/trace/tr_rbug.c src/gallium/state_trackers/vega/bezier.c src/gallium/state_trackers/vega/vg_context.c src/gallium/state_trackers/xorg/xorg_crtc.c src/gallium/state_trackers/xorg/xorg_driver.c src/gallium/winsys/xlib/xlib_brw_context.c src/mesa/main/mtypes.h
This commit is contained in:
commit
d0b7ff551a
40 changed files with 321 additions and 54 deletions
|
|
@ -49,7 +49,7 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X
|
|||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm
|
||||
|
||||
# omit glw lib for now:
|
||||
SRC_DIRS = glx/x11 mesa glu glut/glx glew
|
||||
SRC_DIRS = glx/x11 mesa gallium glu glut/glx glew
|
||||
GLU_DIRS = sgi
|
||||
DRIVER_DIRS = osmesa
|
||||
#DRIVER_DIRS = dri
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
<H1>News</H1>
|
||||
|
||||
<h2>November XX, 2009</h2>
|
||||
<h2>December 21, 2009</h2>
|
||||
<p>
|
||||
<a href="relnotes-7.6.1.html">Mesa 7.6.1</a> is released. This is a bug-fix
|
||||
release fixing issues found in the 7.6 release.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.6.1 Release Notes, (date tbd)</H1>
|
||||
<H1>Mesa 7.6.1 Release Notes, 21 December 2009</H1>
|
||||
|
||||
<p>
|
||||
Mesa 7.6.1 is a bug-fix release fixing issues since version 7.6.
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
*/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <GL/glut.h>
|
||||
|
|
@ -129,8 +130,10 @@ Clear_Buffers ()
|
|||
static void
|
||||
LoadTriplet (TDA A)
|
||||
{
|
||||
int result;
|
||||
Clear_Buffers ();
|
||||
fscanf (mainfile, "%s %s %s %s", Buf1, Buf2, Buf3, Buf4);
|
||||
result = fscanf (mainfile, "%s %s %s %s", Buf1, Buf2, Buf3, Buf4);
|
||||
assert(result != EOF);
|
||||
A[0] = atof (Buf2);
|
||||
A[1] = atof (Buf3);
|
||||
A[2] = atof (Buf4);
|
||||
|
|
@ -140,8 +143,10 @@ LoadTriplet (TDA A)
|
|||
static void
|
||||
LoadReal (float *a)
|
||||
{
|
||||
int result;
|
||||
Clear_Buffers ();
|
||||
fscanf (mainfile, "%s %s", Buf1, Buf2);
|
||||
result = fscanf (mainfile, "%s %s", Buf1, Buf2);
|
||||
assert(result != EOF);
|
||||
*a = atof (Buf2);
|
||||
}
|
||||
|
||||
|
|
@ -149,8 +154,10 @@ LoadReal (float *a)
|
|||
static void
|
||||
LoadInteger (int *a)
|
||||
{
|
||||
int result;
|
||||
Clear_Buffers ();
|
||||
fscanf (mainfile, "%s %s", Buf1, Buf2);
|
||||
result = fscanf (mainfile, "%s %s", Buf1, Buf2);
|
||||
assert(result != EOF);
|
||||
*a = atoi (Buf2);
|
||||
}
|
||||
|
||||
|
|
@ -158,8 +165,10 @@ LoadInteger (int *a)
|
|||
static void
|
||||
LoadText (char *a)
|
||||
{
|
||||
int result;
|
||||
Clear_Buffers ();
|
||||
fscanf (mainfile, "%s %s", Buf1, Buf2);
|
||||
result = fscanf (mainfile, "%s %s", Buf1, Buf2);
|
||||
assert(result != EOF);
|
||||
strcpy (a, Buf2);
|
||||
}
|
||||
|
||||
|
|
@ -177,8 +186,10 @@ getdata (char filename[])
|
|||
|
||||
do
|
||||
{
|
||||
int result;
|
||||
Clear_Buffers ();
|
||||
fscanf (mainfile, "%s", Buf1);
|
||||
result = fscanf (mainfile, "%s", Buf1);
|
||||
(void) result;
|
||||
if (ferror (mainfile))
|
||||
{
|
||||
printf ("\nError opening file !\n");
|
||||
|
|
|
|||
|
|
@ -132,9 +132,11 @@ static void read_surface( char *filename )
|
|||
|
||||
numverts = 0;
|
||||
while (!feof(f) && numverts<maxverts) {
|
||||
fscanf( f, "%f %f %f %f %f %f",
|
||||
&data[numverts][0], &data[numverts][1], &data[numverts][2],
|
||||
&data[numverts][3], &data[numverts][4], &data[numverts][5] );
|
||||
int result;
|
||||
result = fscanf( f, "%f %f %f %f %f %f",
|
||||
&data[numverts][0], &data[numverts][1], &data[numverts][2],
|
||||
&data[numverts][3], &data[numverts][4], &data[numverts][5] );
|
||||
(void) result;
|
||||
numverts++;
|
||||
}
|
||||
numverts--;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
* based on a Mikael SkiZoWalker's (MoDEL) / France (Skizo@Hol.Fr) demo
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
|
|
@ -559,12 +560,14 @@ loadpic(void)
|
|||
FILE *FilePic;
|
||||
int i, tmp;
|
||||
GLenum gluerr;
|
||||
size_t result;
|
||||
|
||||
if ((FilePic = fopen("terrain.dat", "r")) == NULL) {
|
||||
fprintf(stderr, "Error loading terrain.dat\n");
|
||||
exit(-1);
|
||||
}
|
||||
fread(bufferter, 256 * 256, 1, FilePic);
|
||||
result = fread(bufferter, 256 * 256, 1, FilePic);
|
||||
assert(result == 1);
|
||||
fclose(FilePic);
|
||||
|
||||
for (i = 0; i < (256 * 256); i++) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
|
@ -89,6 +90,7 @@ static rawImageRec *RawImageOpen(const char *fileName)
|
|||
rawImageRec *raw;
|
||||
GLenum swapFlag;
|
||||
int x;
|
||||
size_t result;
|
||||
|
||||
endianTest.testWord = 1;
|
||||
if (endianTest.testByte[0] == 1) {
|
||||
|
|
@ -114,7 +116,8 @@ static rawImageRec *RawImageOpen(const char *fileName)
|
|||
}
|
||||
}
|
||||
|
||||
fread(raw, 1, 12, raw->file);
|
||||
result = fread(raw, 1, 12, raw->file);
|
||||
assert(result == 12);
|
||||
|
||||
if (swapFlag) {
|
||||
ConvertShort(&raw->imagic, 1);
|
||||
|
|
@ -162,8 +165,10 @@ static rawImageRec *RawImageOpen(const char *fileName)
|
|||
}
|
||||
raw->rleEnd = 512 + (2 * x);
|
||||
fseek(raw->file, 512, SEEK_SET);
|
||||
fread(raw->rowStart, 1, x, raw->file);
|
||||
fread(raw->rowSize, 1, x, raw->file);
|
||||
result = fread(raw->rowStart, 1, x, raw->file);
|
||||
assert(result == x);
|
||||
result = fread(raw->rowSize, 1, x, raw->file);
|
||||
assert(result == x);
|
||||
if (swapFlag) {
|
||||
ConvertLong(raw->rowStart, (long) (x/sizeof(GLuint)));
|
||||
ConvertLong((GLuint *)raw->rowSize, (long) (x/sizeof(GLint)));
|
||||
|
|
@ -193,11 +198,13 @@ static void RawImageGetRow(rawImageRec *raw, unsigned char *buf, int y, int z)
|
|||
{
|
||||
unsigned char *iPtr, *oPtr, pixel;
|
||||
int count, done = 0;
|
||||
size_t result;
|
||||
|
||||
if ((raw->type & 0xFF00) == 0x0100) {
|
||||
fseek(raw->file, (long) raw->rowStart[y+z*raw->sizeY], SEEK_SET);
|
||||
fread(raw->tmp, 1, (unsigned int)raw->rowSize[y+z*raw->sizeY],
|
||||
raw->file);
|
||||
result = fread(raw->tmp, 1, (unsigned int)raw->rowSize[y+z*raw->sizeY],
|
||||
raw->file);
|
||||
assert(result == (unsigned int)raw->rowSize[y+z*raw->sizeY]);
|
||||
|
||||
iPtr = raw->tmp;
|
||||
oPtr = buf;
|
||||
|
|
@ -222,7 +229,8 @@ static void RawImageGetRow(rawImageRec *raw, unsigned char *buf, int y, int z)
|
|||
} else {
|
||||
fseek(raw->file, 512+(y*raw->sizeX)+(z*raw->sizeX*raw->sizeY),
|
||||
SEEK_SET);
|
||||
fread(buf, 1, raw->sizeX, raw->file);
|
||||
result = fread(buf, 1, raw->sizeX, raw->file);
|
||||
assert(result == raw->sizeX);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ typedef enum
|
|||
RBUG_BLOCK_BEFORE = 1,
|
||||
RBUG_BLOCK_AFTER = 2,
|
||||
RBUG_BLOCK_RULE = 4,
|
||||
RBUG_BLOCK_MASK = 7,
|
||||
RBUG_BLOCK_MASK = 7
|
||||
} rbug_block_t;
|
||||
|
||||
struct rbug_proto_context_list
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ enum rbug_opcode
|
|||
RBUG_OP_SHADER_DISABLE = 770,
|
||||
RBUG_OP_SHADER_REPLACE = 771,
|
||||
RBUG_OP_SHADER_LIST_REPLY = -768,
|
||||
RBUG_OP_SHADER_INFO_REPLY = -769,
|
||||
RBUG_OP_SHADER_INFO_REPLY = -769
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ util_clear(struct pipe_context *pipe,
|
|||
{
|
||||
if (buffers & PIPE_CLEAR_COLOR) {
|
||||
struct pipe_surface *ps = framebuffer->cbufs[0];
|
||||
unsigned color;
|
||||
unsigned color = 0;
|
||||
|
||||
util_pack_color(rgba, ps->format, &color);
|
||||
if (pipe->surface_fill) {
|
||||
|
|
|
|||
|
|
@ -452,7 +452,8 @@ debug_dump_flags(const struct debug_named_value *names,
|
|||
util_strncat(output, "|", sizeof(output));
|
||||
else
|
||||
first = 0;
|
||||
util_strncat(output, names->name, sizeof(output));
|
||||
util_strncat(output, names->name, sizeof(output) - 1);
|
||||
output[sizeof(output) - 1] = '\0';
|
||||
value &= ~names->value;
|
||||
}
|
||||
++names;
|
||||
|
|
@ -465,7 +466,8 @@ debug_dump_flags(const struct debug_named_value *names,
|
|||
first = 0;
|
||||
|
||||
util_snprintf(rest, sizeof(rest), "0x%08lx", value);
|
||||
util_strncat(output, rest, sizeof(output));
|
||||
util_strncat(output, rest, sizeof(output) - 1);
|
||||
output[sizeof(output) - 1] = '\0';
|
||||
}
|
||||
|
||||
if(first)
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ enum util_format_colorspace {
|
|||
UTIL_FORMAT_COLORSPACE_RGB = 0,
|
||||
UTIL_FORMAT_COLORSPACE_SRGB = 1,
|
||||
UTIL_FORMAT_COLORSPACE_YUV = 2,
|
||||
UTIL_FORMAT_COLORSPACE_ZS = 3,
|
||||
UTIL_FORMAT_COLORSPACE_ZS = 3
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
|
||||
# include <winsock2.h>
|
||||
# include <windows.h>
|
||||
#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_BSD)
|
||||
#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_APPLE)
|
||||
# include <sys/socket.h>
|
||||
# include <netinet/in.h>
|
||||
# include <unistd.h>
|
||||
|
|
@ -54,7 +54,7 @@ u_socket_close(int s)
|
|||
if (s < 0)
|
||||
return;
|
||||
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_BSD)
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_APPLE)
|
||||
shutdown(s, SHUT_RDWR);
|
||||
close(s);
|
||||
#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
|
||||
|
|
@ -169,7 +169,7 @@ u_socket_listen_on_port(uint16_t portnum)
|
|||
void
|
||||
u_socket_block(int s, boolean block)
|
||||
{
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_BSD)
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_APPLE)
|
||||
int old = fcntl(s, F_GETFL, 0);
|
||||
if (old == -1)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
|
||||
# define PIPE_HAVE_SOCKETS
|
||||
#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_BSD)
|
||||
#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_APPLE)
|
||||
# define PIPE_HAVE_SOCKETS
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#include "pipe/p_config.h"
|
||||
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_SUBSYSTEM_WINDOWS_USER) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU)
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_SUBSYSTEM_WINDOWS_USER) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_APPLE)
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@ translate_wrap_mode(unsigned wrap)
|
|||
return TEXCOORDMODE_CLAMP_EDGE;
|
||||
case PIPE_TEX_WRAP_CLAMP_TO_BORDER:
|
||||
return TEXCOORDMODE_CLAMP_BORDER;
|
||||
/*
|
||||
/*
|
||||
case PIPE_TEX_WRAP_MIRRORED_REPEAT:
|
||||
return TEXCOORDMODE_MIRROR;
|
||||
*/
|
||||
*/
|
||||
default:
|
||||
return TEXCOORDMODE_WRAP;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include "pipe/p_config.h"
|
||||
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS)
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE)
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -258,7 +258,7 @@ boolean trace_dump_trace_begin()
|
|||
trace_dump_writes("<?xml-stylesheet type='text/xsl' href='trace.xsl'?>\n");
|
||||
trace_dump_writes("<trace version='0.1'>\n");
|
||||
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS)
|
||||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE)
|
||||
/* Linux applications rarely cleanup GL / Gallium resources so catch
|
||||
* application exit here */
|
||||
atexit(trace_dump_trace_close);
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
#if defined(PIPE_SUBSYSTEM_WINDOWS_USER)
|
||||
# define sleep Sleep
|
||||
#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD)
|
||||
#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_APPLE)
|
||||
void usleep(int);
|
||||
# define sleep usleep
|
||||
#else
|
||||
|
|
@ -179,7 +179,7 @@ static int
|
|||
trace_rbug_texture_info(struct trace_rbug *tr_rbug, struct rbug_header *header, uint32_t serial)
|
||||
{
|
||||
struct trace_screen *tr_scr = tr_rbug->tr_scr;
|
||||
struct trace_texture *tr_tex;
|
||||
struct trace_texture *tr_tex = NULL;
|
||||
struct rbug_proto_texture_info *gpti = (struct rbug_proto_texture_info *)header;
|
||||
struct tr_list *ptr;
|
||||
struct pipe_texture *t;
|
||||
|
|
@ -220,7 +220,7 @@ trace_rbug_texture_read(struct trace_rbug *tr_rbug, struct rbug_header *header,
|
|||
struct rbug_proto_texture_read *gptr = (struct rbug_proto_texture_read *)header;
|
||||
|
||||
struct trace_screen *tr_scr = tr_rbug->tr_scr;
|
||||
struct trace_texture *tr_tex;
|
||||
struct trace_texture *tr_tex = NULL;
|
||||
struct tr_list *ptr;
|
||||
|
||||
struct pipe_screen *screen = tr_scr->screen;
|
||||
|
|
|
|||
|
|
@ -171,9 +171,9 @@ drm_takedown_shown_screen(_EGLDisplay *dpy, struct drm_screen *screen)
|
|||
drmModeSetCrtc(
|
||||
dev->drmFD,
|
||||
screen->crtcID,
|
||||
0, // FD
|
||||
0, /* FD */
|
||||
0, 0,
|
||||
NULL, 0, // List of output ids
|
||||
NULL, 0, /* List of output ids */
|
||||
NULL);
|
||||
|
||||
drmModeRmFB(dev->drmFD, screen->fbID);
|
||||
|
|
|
|||
|
|
@ -538,6 +538,7 @@ static INLINE int num_beziers_needed(struct arc *arc)
|
|||
double d_eta = (max_eta - min_eta) / n;
|
||||
if (d_eta <= 0.5 * M_PI) {
|
||||
double eta_b = min_eta;
|
||||
int i;
|
||||
found = VG_TRUE;
|
||||
for (i = 0; found && (i < n); ++i) {
|
||||
double etaA = eta_b;
|
||||
|
|
@ -561,6 +562,7 @@ static void arc_to_beziers(struct arc *arc,
|
|||
sin_eta_b, a_cos_eta_b, b_sin_eta_b, a_sin_eta_b,
|
||||
b_cos_eta_b, x_b, y_b, x_b_dot, y_b_dot, lx, ly;
|
||||
double t, alpha;
|
||||
int i;
|
||||
|
||||
{ /* always move to the start of the arc */
|
||||
VGfloat x = arc->x1;
|
||||
|
|
|
|||
|
|
@ -256,7 +256,6 @@ static enum shift_result good_offset(const struct bezier *b1,
|
|||
const float max_dist_normal = threshold*offset;
|
||||
const float spacing = 0.25;
|
||||
float i;
|
||||
|
||||
for (i = spacing; i < 0.99; i += spacing) {
|
||||
float p1[2],p2[2], d, l;
|
||||
float normal[2];
|
||||
|
|
@ -344,6 +343,8 @@ static enum shift_result shift(const struct bezier *orig,
|
|||
float points_shifted[4][2];
|
||||
float prev_normal[2];
|
||||
|
||||
int i;
|
||||
|
||||
points[np][0] = orig->x1;
|
||||
points[np][1] = orig->y1;
|
||||
map[0] = 0;
|
||||
|
|
|
|||
|
|
@ -232,7 +232,10 @@ static void update_clip_state(struct vg_context *ctx)
|
|||
struct pipe_blend_state *blend = &ctx->state.g3d.blend;
|
||||
struct pipe_framebuffer_state *fb = &ctx->state.g3d.fb;
|
||||
int i;
|
||||
<<<<<<< HEAD:src/gallium/state_trackers/vega/vg_context.c
|
||||
|
||||
=======
|
||||
>>>>>>> mesa_7_6_branch:src/gallium/state_trackers/vega/vg_context.c
|
||||
dsa->depth.writemask = 1;/*glDepthMask(TRUE);*/
|
||||
dsa->depth.func = PIPE_FUNC_ALWAYS;
|
||||
dsa->depth.enabled = 1;
|
||||
|
|
|
|||
|
|
@ -70,6 +70,8 @@ struct crtc_private
|
|||
static void
|
||||
crtc_dpms(xf86CrtcPtr crtc, int mode)
|
||||
{
|
||||
/* ScrnInfoPtr pScrn = crtc->scrn; */
|
||||
|
||||
switch (mode) {
|
||||
case DPMSModeOn:
|
||||
case DPMSModeStandby:
|
||||
|
|
@ -146,18 +148,23 @@ crtc_gamma_set(xf86CrtcPtr crtc, CARD16 * red, CARD16 * green, CARD16 * blue,
|
|||
static void *
|
||||
crtc_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
|
||||
{
|
||||
/* ScrnInfoPtr pScrn = crtc->scrn; */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static PixmapPtr
|
||||
crtc_shadow_create(xf86CrtcPtr crtc, void *data, int width, int height)
|
||||
{
|
||||
/* ScrnInfoPtr pScrn = crtc->scrn; */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data)
|
||||
{
|
||||
/* ScrnInfoPtr pScrn = crtc->scrn; */
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -220,6 +220,12 @@ static Bool
|
|||
drv_init_resource_management(ScrnInfoPtr pScrn)
|
||||
{
|
||||
modesettingPtr ms = modesettingPTR(pScrn);
|
||||
/*
|
||||
ScreenPtr pScreen = pScrn->pScreen;
|
||||
PixmapPtr rootPixmap = pScreen->GetScreenPixmap(pScreen);
|
||||
Bool fbAccessDisabled;
|
||||
CARD8 *fbstart;
|
||||
*/
|
||||
|
||||
if (ms->screen || ms->kms)
|
||||
return TRUE;
|
||||
|
|
|
|||
209
src/gallium/winsys/xlib/xlib_brw_context.c
Normal file
209
src/gallium/winsys/xlib/xlib_brw_context.c
Normal file
|
|
@ -0,0 +1,209 @@
|
|||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2007 Tungsten Graphics, Inc., Bismarck, ND., USA
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sub license, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial portions
|
||||
* of the Software.
|
||||
*
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
/*
|
||||
* Authors:
|
||||
* Keith Whitwell
|
||||
* Brian Paul
|
||||
*/
|
||||
|
||||
|
||||
/* #include "glxheader.h" */
|
||||
/* #include "xmesaP.h" */
|
||||
|
||||
#include "pipe/internal/p_winsys_screen.h"
|
||||
#include "pipe/p_inlines.h"
|
||||
#include "util/u_math.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "i965simple/brw_winsys.h"
|
||||
#include "xlib_brw_aub.h"
|
||||
#include "xlib_brw.h"
|
||||
|
||||
|
||||
|
||||
|
||||
#define XBCWS_BATCHBUFFER_SIZE 1024
|
||||
|
||||
|
||||
/* The backend to the brw driver (ie struct brw_winsys) is actually a
|
||||
* per-context entity.
|
||||
*/
|
||||
struct xlib_brw_context_winsys {
|
||||
struct brw_winsys brw_context_winsys; /**< batch buffer funcs */
|
||||
struct aub_context *aub;
|
||||
|
||||
struct pipe_winsys *pipe_winsys;
|
||||
|
||||
unsigned batch_data[XBCWS_BATCHBUFFER_SIZE];
|
||||
unsigned batch_nr;
|
||||
unsigned batch_size;
|
||||
unsigned batch_alloc;
|
||||
};
|
||||
|
||||
|
||||
/* Turn a brw_winsys into an xlib_brw_context_winsys:
|
||||
*/
|
||||
static inline struct xlib_brw_context_winsys *
|
||||
xlib_brw_context_winsys( struct brw_winsys *sws )
|
||||
{
|
||||
return (struct xlib_brw_context_winsys *)sws;
|
||||
}
|
||||
|
||||
|
||||
/* Simple batchbuffer interface:
|
||||
*/
|
||||
|
||||
static unsigned *xbcws_batch_start( struct brw_winsys *sws,
|
||||
unsigned dwords,
|
||||
unsigned relocs )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = xlib_brw_context_winsys(sws);
|
||||
|
||||
if (xbcws->batch_size < xbcws->batch_nr + dwords)
|
||||
return NULL;
|
||||
|
||||
xbcws->batch_alloc = xbcws->batch_nr + dwords;
|
||||
return (void *)1; /* not a valid pointer! */
|
||||
}
|
||||
|
||||
static void xbcws_batch_dword( struct brw_winsys *sws,
|
||||
unsigned dword )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = xlib_brw_context_winsys(sws);
|
||||
|
||||
assert(xbcws->batch_nr < xbcws->batch_alloc);
|
||||
xbcws->batch_data[xbcws->batch_nr++] = dword;
|
||||
}
|
||||
|
||||
static void xbcws_batch_reloc( struct brw_winsys *sws,
|
||||
struct pipe_buffer *buf,
|
||||
unsigned access_flags,
|
||||
unsigned delta )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = xlib_brw_context_winsys(sws);
|
||||
|
||||
assert(xbcws->batch_nr < xbcws->batch_alloc);
|
||||
xbcws->batch_data[xbcws->batch_nr++] =
|
||||
( xlib_brw_get_buffer_offset( NULL, buf, access_flags ) +
|
||||
delta );
|
||||
}
|
||||
|
||||
static void xbcws_batch_end( struct brw_winsys *sws )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = xlib_brw_context_winsys(sws);
|
||||
|
||||
assert(xbcws->batch_nr <= xbcws->batch_alloc);
|
||||
xbcws->batch_alloc = 0;
|
||||
}
|
||||
|
||||
static void xbcws_batch_flush( struct brw_winsys *sws,
|
||||
struct pipe_fence_handle **fence )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = xlib_brw_context_winsys(sws);
|
||||
assert(xbcws->batch_nr <= xbcws->batch_size);
|
||||
|
||||
if (xbcws->batch_nr) {
|
||||
xlib_brw_commands_aub( xbcws->pipe_winsys,
|
||||
xbcws->batch_data,
|
||||
xbcws->batch_nr );
|
||||
}
|
||||
|
||||
xbcws->batch_nr = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Really a per-device function, just pass through:
|
||||
*/
|
||||
static unsigned xbcws_get_buffer_offset( struct brw_winsys *sws,
|
||||
struct pipe_buffer *buf,
|
||||
unsigned access_flags )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = xlib_brw_context_winsys(sws);
|
||||
|
||||
return xlib_brw_get_buffer_offset( xbcws->pipe_winsys,
|
||||
buf,
|
||||
access_flags );
|
||||
}
|
||||
|
||||
|
||||
/* Really a per-device function, just pass through:
|
||||
*/
|
||||
static void xbcws_buffer_subdata_typed( struct brw_winsys *sws,
|
||||
struct pipe_buffer *buf,
|
||||
unsigned long offset,
|
||||
unsigned long size,
|
||||
const void *data,
|
||||
unsigned data_type )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = xlib_brw_context_winsys(sws);
|
||||
|
||||
xlib_brw_buffer_subdata_typed( xbcws->pipe_winsys,
|
||||
buf,
|
||||
offset,
|
||||
size,
|
||||
data,
|
||||
data_type );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create i965 hardware rendering context, but plugged into a
|
||||
* dump-to-aubfile backend.
|
||||
*/
|
||||
struct pipe_context *
|
||||
xlib_create_brw_context( struct pipe_screen *screen,
|
||||
void *unused )
|
||||
{
|
||||
struct xlib_brw_context_winsys *xbcws = CALLOC_STRUCT( xlib_brw_context_winsys );
|
||||
|
||||
/* Fill in this struct with callbacks that i965simple will need to
|
||||
* communicate with the window system, buffer manager, etc.
|
||||
*/
|
||||
xbcws->brw_context_winsys.batch_start = xbcws_batch_start;
|
||||
xbcws->brw_context_winsys.batch_dword = xbcws_batch_dword;
|
||||
xbcws->brw_context_winsys.batch_reloc = xbcws_batch_reloc;
|
||||
xbcws->brw_context_winsys.batch_end = xbcws_batch_end;
|
||||
xbcws->brw_context_winsys.batch_flush = xbcws_batch_flush;
|
||||
xbcws->brw_context_winsys.buffer_subdata_typed = xbcws_buffer_subdata_typed;
|
||||
xbcws->brw_context_winsys.get_buffer_offset = xbcws_get_buffer_offset;
|
||||
|
||||
xbcws->pipe_winsys = screen->winsys; /* redundant */
|
||||
|
||||
xbcws->batch_size = XBCWS_BATCHBUFFER_SIZE;
|
||||
|
||||
/* Create the i965simple context:
|
||||
*/
|
||||
#ifdef GALLIUM_CELL
|
||||
return NULL;
|
||||
#else
|
||||
return brw_create( screen,
|
||||
&xbcws->brw_context_winsys,
|
||||
0 );
|
||||
#endif
|
||||
}
|
||||
|
|
@ -37,7 +37,6 @@
|
|||
#define __gluarcsorter_h_
|
||||
|
||||
#include "sorter.h"
|
||||
#include "arcsorter.h"
|
||||
|
||||
class Arc;
|
||||
class Subdivider;
|
||||
|
|
|
|||
|
|
@ -531,16 +531,18 @@ Subdivider::nonSamplingSplit(
|
|||
patchlist.pspec[param].range[1] ) * 0.5;
|
||||
split( source, left, right, param, mid );
|
||||
Patchlist subpatchlist( patchlist, param, mid );
|
||||
if( left.isnonempty() )
|
||||
if( left.isnonempty() ) {
|
||||
if( subpatchlist.cullCheck() == CULL_TRIVIAL_REJECT )
|
||||
freejarcs( left );
|
||||
else
|
||||
nonSamplingSplit( left, subpatchlist, subdivisions-1, param );
|
||||
if( right.isnonempty() )
|
||||
}
|
||||
if( right.isnonempty() ) {
|
||||
if( patchlist.cullCheck() == CULL_TRIVIAL_REJECT )
|
||||
freejarcs( right );
|
||||
else
|
||||
nonSamplingSplit( right, patchlist, subdivisions-1, param );
|
||||
}
|
||||
|
||||
} else {
|
||||
// make bbox calls
|
||||
|
|
|
|||
|
|
@ -800,7 +800,7 @@ directedLine* readAllPolygons(char* filename)
|
|||
{
|
||||
Int nEdges;
|
||||
fscanf(fp, "%i", &nEdges);
|
||||
Real vert[2][2];
|
||||
Real vert[2][2] = { { 0 } };
|
||||
Real VV[2][2];
|
||||
/*the first two vertices*/
|
||||
fscanf(fp, "%f", &(vert[0][0]));
|
||||
|
|
|
|||
|
|
@ -111,8 +111,8 @@ Int isCusp(directedLine *v)
|
|||
else if(A[1] > B[1] && C[1] > B[1])
|
||||
return 1;
|
||||
|
||||
if(isAbove(v, v) && isAbove(v, v->getPrev()) ||
|
||||
isBelow(v, v) && isBelow(v, v->getPrev()))
|
||||
if((isAbove(v, v) && isAbove(v, v->getPrev())) ||
|
||||
(isBelow(v, v) && isBelow(v, v->getPrev())))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ void sampleBotRightWithGridLine(Real* botVertex,
|
|||
return;
|
||||
}
|
||||
|
||||
Int segIndexMono, segIndexPass;
|
||||
Int segIndexMono = 0, segIndexPass;
|
||||
findBotRightSegment(rightChain,
|
||||
rightEnd,
|
||||
rightCorner,
|
||||
|
|
@ -293,7 +293,7 @@ void sampleBotLeftWithGridLine(Real* botVertex,
|
|||
return;
|
||||
}
|
||||
|
||||
Int segIndexPass, segIndexMono;
|
||||
Int segIndexPass, segIndexMono = 0;
|
||||
findBotLeftSegment(leftChain, leftEnd, leftCorner, grid->get_u_value(leftU), segIndexMono, segIndexPass);
|
||||
|
||||
sampleBotLeftWithGridLinePost(botVertex,
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ void sampleTopRightWithGridLine(Real* topVertex,
|
|||
return;
|
||||
}
|
||||
|
||||
Int segIndexSmall, segIndexLarge;
|
||||
Int segIndexSmall = 0, segIndexLarge;
|
||||
findTopRightSegment(rightChain,
|
||||
rightStart,
|
||||
rightEnd,
|
||||
|
|
@ -294,7 +294,7 @@ void sampleTopLeftWithGridLine(Real* topVertex,
|
|||
primStream* pStream
|
||||
)
|
||||
{
|
||||
Int segIndexSmall, segIndexLarge;
|
||||
Int segIndexSmall = 0, segIndexLarge;
|
||||
//if left chain is empty, then there is only one top vertex with one grid
|
||||
// line
|
||||
if(leftEnd < leftStart) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@
|
|||
*/
|
||||
|
||||
|
||||
#ifdef GLX_DIRECT_RENDERING
|
||||
|
||||
#define NEED_REPLIES
|
||||
#include <X11/Xlibint.h>
|
||||
#include <X11/extensions/Xext.h>
|
||||
|
|
@ -377,3 +379,5 @@ DRI2CopyRegion(Display * dpy, XID drawable, XserverRegion region,
|
|||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
}
|
||||
|
||||
#endif /* GLX_DIRECT_RENDERING */
|
||||
|
|
|
|||
|
|
@ -150,8 +150,9 @@ FreeScreenConfigs(__GLXdisplayPrivate * priv)
|
|||
|
||||
#ifdef GLX_DIRECT_RENDERING
|
||||
if (psc->driver_configs) {
|
||||
for (unsigned int i = 0; psc->driver_configs[i]; i++)
|
||||
free((__DRIconfig *) psc->driver_configs[i]);
|
||||
unsigned int j;
|
||||
for (j = 0; psc->driver_configs[j]; j++)
|
||||
free((__DRIconfig *) psc->driver_configs[j]);
|
||||
free(psc->driver_configs);
|
||||
psc->driver_configs = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,6 +115,10 @@ Bool XF86DRIGetDeviceInfo(Display * dpy, int screen,
|
|||
int *fbSize, int *fbStride, int *devPrivateSize,
|
||||
void **pDevPrivate);
|
||||
|
||||
Bool XF86DRIOpenFullScreen(Display * dpy, int screen, Drawable drawable);
|
||||
|
||||
Bool XF86DRICloseFullScreen(Display * dpy, int screen, Drawable drawable);
|
||||
|
||||
_XFUNCPROTOEND
|
||||
#endif /* _XF86DRI_SERVER_ */
|
||||
#endif /* _XF86DRI_H_ */
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ static struct {
|
|||
#define LOCAL_VARS(n) \
|
||||
ffbContextPtr fmesa = FFB_CONTEXT(ctx); \
|
||||
__DRIdrawablePrivate *dPriv = fmesa->driDrawable; \
|
||||
ffb_color color[n]; \
|
||||
ffb_color color[n] = { { 0 } }; \
|
||||
(void) color; (void) dPriv;
|
||||
|
||||
/***********************************************************************
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ GLuint i915_emit_texld( struct i915_fragment_program *p,
|
|||
}
|
||||
else {
|
||||
assert(GET_UREG_TYPE(dest) != REG_TYPE_CONST);
|
||||
assert(dest = UREG(GET_UREG_TYPE(dest), GET_UREG_NR(dest)));
|
||||
assert(dest == UREG(GET_UREG_TYPE(dest), GET_UREG_NR(dest)));
|
||||
/* Can't use unsaved temps for coords, as the phase boundary would result
|
||||
* in the contents becoming undefined.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -365,6 +365,7 @@ static int format (FILE *f, char *format, ...)
|
|||
va_start (args, format);
|
||||
|
||||
vsnprintf (buf, sizeof (buf) - 1, format, args);
|
||||
va_end (args);
|
||||
string (f, buf);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -853,7 +853,7 @@ void brw_land_fwd_jump(struct brw_compile *p,
|
|||
jmpi = 2;
|
||||
|
||||
assert(jmp_insn->header.opcode == BRW_OPCODE_JMPI);
|
||||
assert(jmp_insn->bits1.da1.src1_reg_file = BRW_IMMEDIATE_VALUE);
|
||||
assert(jmp_insn->bits1.da1.src1_reg_file == BRW_IMMEDIATE_VALUE);
|
||||
|
||||
jmp_insn->bits3.ud = jmpi * ((landing - jmp_insn) - 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include "main/mtypes.h"
|
||||
#include "main/macros.h"
|
||||
#include "main/bufferobj.h"
|
||||
#include "main/polygon.h"
|
||||
#include "main/pixelstore.h"
|
||||
#include "main/polygon.h"
|
||||
#include "main/state.h"
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ slang_operation_construct(slang_operation * oper)
|
|||
oper->literal_size = 1;
|
||||
oper->array_constructor = GL_FALSE;
|
||||
oper->a_id = SLANG_ATOM_NULL;
|
||||
oper->a_obj = SLANG_ATOM_NULL;
|
||||
oper->locals = _slang_variable_scope_new(NULL);
|
||||
if (oper->locals == NULL)
|
||||
return GL_FALSE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue