Merge branch '7.8'
This commit is contained in:
46
docs/relnotes-7.8.2.html
Normal file
46
docs/relnotes-7.8.2.html
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<TITLE>Mesa Release Notes</TITLE>
|
||||||
|
|
||||||
|
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<body bgcolor="#eeeeee">
|
||||||
|
|
||||||
|
<H1>Mesa 7.8.2 Release Notes / April, 5, 2010</H1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mesa 7.8.2 is a bug fix release which fixes bugs found since the 7.8.1 release.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Mesa 7.8.2 implements the OpenGL 2.1 API, but the version reported by
|
||||||
|
glGetString(GL_VERSION) depends on the particular driver being used.
|
||||||
|
Some drivers don't support all the features required in OpenGL 2.1.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
|
||||||
|
for DRI hardware acceleration.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>MD5 checksums</h2>
|
||||||
|
<pre>
|
||||||
|
tbd
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>New features</h2>
|
||||||
|
<p>None.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Bug fixes</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed Gallium glDrawPixels(GL_DEPTH_COMPONENT).
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Changes</h2>
|
||||||
|
<p>None.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<UL>
|
<UL>
|
||||||
|
<LI><A HREF="relnotes-7.8.2.html">7.8.2 release notes</A>
|
||||||
<LI><A HREF="relnotes-7.8.1.html">7.8.1 release notes</A>
|
<LI><A HREF="relnotes-7.8.1.html">7.8.1 release notes</A>
|
||||||
<LI><A HREF="relnotes-7.8.html">7.8 release notes</A>
|
<LI><A HREF="relnotes-7.8.html">7.8 release notes</A>
|
||||||
<LI><A HREF="relnotes-7.7.1.html">7.7.1 release notes</A>
|
<LI><A HREF="relnotes-7.7.1.html">7.7.1 release notes</A>
|
||||||
|
@@ -102,6 +102,19 @@ static void Display(void)
|
|||||||
|
|
||||||
/* read back scaled depth image */
|
/* read back scaled depth image */
|
||||||
glReadPixels(100, 0, 400, 400, GL_DEPTH_COMPONENT, GL_FLOAT, depth2);
|
glReadPixels(100, 0, 400, 400, GL_DEPTH_COMPONENT, GL_FLOAT, depth2);
|
||||||
|
|
||||||
|
/* debug */
|
||||||
|
if (0) {
|
||||||
|
int i;
|
||||||
|
float *z = depth2 + 400 * 200;
|
||||||
|
printf("z at y=200:\n");
|
||||||
|
for (i = 0; i < 400; i++) {
|
||||||
|
printf("%5.3f ", z[i]);
|
||||||
|
if ((i + 1) % 12 == 0)
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* draw as luminance */
|
/* draw as luminance */
|
||||||
glPixelZoom(1.0, 1.0);
|
glPixelZoom(1.0, 1.0);
|
||||||
glWindowPos2i(100, 0);
|
glWindowPos2i(100, 0);
|
||||||
|
@@ -625,7 +625,7 @@ replace_registers(struct prog_instruction *inst, GLuint numInst,
|
|||||||
GLuint i, j;
|
GLuint i, j;
|
||||||
for (i = 0; i < numInst; i++) {
|
for (i = 0; i < numInst; i++) {
|
||||||
/* src regs */
|
/* src regs */
|
||||||
for (j = 0; j < _mesa_num_inst_src_regs(inst->Opcode); j++) {
|
for (j = 0; j < _mesa_num_inst_src_regs(inst[i].Opcode); j++) {
|
||||||
if (inst[i].SrcReg[j].File == oldFile &&
|
if (inst[i].SrcReg[j].File == oldFile &&
|
||||||
inst[i].SrcReg[j].Index == oldIndex) {
|
inst[i].SrcReg[j].Index == oldIndex) {
|
||||||
inst[i].SrcReg[j].File = newFile;
|
inst[i].SrcReg[j].File = newFile;
|
||||||
@@ -652,7 +652,7 @@ adjust_param_indexes(struct prog_instruction *inst, GLuint numInst,
|
|||||||
{
|
{
|
||||||
GLuint i, j;
|
GLuint i, j;
|
||||||
for (i = 0; i < numInst; i++) {
|
for (i = 0; i < numInst; i++) {
|
||||||
for (j = 0; j < _mesa_num_inst_src_regs(inst->Opcode); j++) {
|
for (j = 0; j < _mesa_num_inst_src_regs(inst[i].Opcode); j++) {
|
||||||
GLuint f = inst[i].SrcReg[j].File;
|
GLuint f = inst[i].SrcReg[j].File;
|
||||||
if (f == PROGRAM_CONSTANT ||
|
if (f == PROGRAM_CONSTANT ||
|
||||||
f == PROGRAM_UNIFORM ||
|
f == PROGRAM_UNIFORM ||
|
||||||
|
@@ -249,13 +249,13 @@ make_passthrough_vertex_shader(struct st_context *st,
|
|||||||
ureg_DECL_output( ureg, TGSI_SEMANTIC_POSITION, 0 ),
|
ureg_DECL_output( ureg, TGSI_SEMANTIC_POSITION, 0 ),
|
||||||
ureg_DECL_vs_input( ureg, 0 ));
|
ureg_DECL_vs_input( ureg, 0 ));
|
||||||
|
|
||||||
/* MOV result.texcoord0, vertex.texcoord0; */
|
/* MOV result.texcoord0, vertex.attr[1]; */
|
||||||
ureg_MOV(ureg,
|
ureg_MOV(ureg,
|
||||||
ureg_DECL_output( ureg, TGSI_SEMANTIC_GENERIC, 0 ),
|
ureg_DECL_output( ureg, TGSI_SEMANTIC_GENERIC, 0 ),
|
||||||
ureg_DECL_vs_input( ureg, 1 ));
|
ureg_DECL_vs_input( ureg, 1 ));
|
||||||
|
|
||||||
if (passColor) {
|
if (passColor) {
|
||||||
/* MOV result.color0, vertex.color0; */
|
/* MOV result.color0, vertex.attr[2]; */
|
||||||
ureg_MOV(ureg,
|
ureg_MOV(ureg,
|
||||||
ureg_DECL_output( ureg, TGSI_SEMANTIC_COLOR, 0 ),
|
ureg_DECL_output( ureg, TGSI_SEMANTIC_COLOR, 0 ),
|
||||||
ureg_DECL_vs_input( ureg, 2 ));
|
ureg_DECL_vs_input( ureg, 2 ));
|
||||||
@@ -451,7 +451,7 @@ draw_quad(GLcontext *ctx, GLfloat x0, GLfloat y0, GLfloat z,
|
|||||||
const GLfloat sLeft = 0.0f, sRight = maxXcoord;
|
const GLfloat sLeft = 0.0f, sRight = maxXcoord;
|
||||||
const GLfloat tTop = invertTex ? maxYcoord : 0.0f;
|
const GLfloat tTop = invertTex ? maxYcoord : 0.0f;
|
||||||
const GLfloat tBot = invertTex ? 0.0f : maxYcoord;
|
const GLfloat tBot = invertTex ? 0.0f : maxYcoord;
|
||||||
GLuint tex, i;
|
GLuint i;
|
||||||
|
|
||||||
/* upper-left */
|
/* upper-left */
|
||||||
verts[0][0][0] = clip_x0; /* v[0].attr[0].x */
|
verts[0][0][0] = clip_x0; /* v[0].attr[0].x */
|
||||||
@@ -469,27 +469,26 @@ draw_quad(GLcontext *ctx, GLfloat x0, GLfloat y0, GLfloat z,
|
|||||||
verts[3][0][0] = clip_x0;
|
verts[3][0][0] = clip_x0;
|
||||||
verts[3][0][1] = clip_y1;
|
verts[3][0][1] = clip_y1;
|
||||||
|
|
||||||
tex = color ? 2 : 1;
|
verts[0][1][0] = sLeft; /* v[0].attr[1].S */
|
||||||
verts[0][tex][0] = sLeft; /* v[0].attr[tex].s */
|
verts[0][1][1] = tTop; /* v[0].attr[1].T */
|
||||||
verts[0][tex][1] = tTop; /* v[0].attr[tex].t */
|
verts[1][1][0] = sRight;
|
||||||
verts[1][tex][0] = sRight;
|
verts[1][1][1] = tTop;
|
||||||
verts[1][tex][1] = tTop;
|
verts[2][1][0] = sRight;
|
||||||
verts[2][tex][0] = sRight;
|
verts[2][1][1] = tBot;
|
||||||
verts[2][tex][1] = tBot;
|
verts[3][1][0] = sLeft;
|
||||||
verts[3][tex][0] = sLeft;
|
verts[3][1][1] = tBot;
|
||||||
verts[3][tex][1] = tBot;
|
|
||||||
|
|
||||||
/* same for all verts: */
|
/* same for all verts: */
|
||||||
if (color) {
|
if (color) {
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
verts[i][0][2] = z; /*Z*/
|
verts[i][0][2] = z; /* v[i].attr[0].z */
|
||||||
verts[i][0][3] = 1.0f; /*W*/
|
verts[i][0][3] = 1.0f; /* v[i].attr[0].w */
|
||||||
verts[i][1][0] = color[0];
|
verts[i][2][0] = color[0]; /* v[i].attr[2].r */
|
||||||
verts[i][1][1] = color[1];
|
verts[i][2][1] = color[1]; /* v[i].attr[2].g */
|
||||||
verts[i][1][2] = color[2];
|
verts[i][2][2] = color[2]; /* v[i].attr[2].b */
|
||||||
verts[i][1][3] = color[3];
|
verts[i][2][3] = color[3]; /* v[i].attr[2].a */
|
||||||
verts[i][2][2] = 0.0f; /*R*/
|
verts[i][1][2] = 0.0f; /* v[i].attr[1].R */
|
||||||
verts[i][2][3] = 1.0f; /*Q*/
|
verts[i][1][3] = 1.0f; /* v[i].attr[1].Q */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Reference in New Issue
Block a user