Merge branch 'mesa_7_7_branch'
Merging was easier than cherry picking in this instance.
This commit is contained in:
@@ -51,5 +51,24 @@ See the <A HREF="xlibdriver.html">Xlib software driver page</A> for details.
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
These environment variables are for the Intel i945/i965 drivers:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>INTEL_STRICT_CONFORMANCE - if set to 1, enable sw fallbacks to improve
|
||||||
|
OpenGL conformance. If set to 2, always use software rendering.
|
||||||
|
<li>INTEL_NO_BLIT - if set, disable hardware-accelerated glBitmap,
|
||||||
|
glCopyPixels, glDrawPixels.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
These environment variables are for the Radeon R300 driver:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>R300_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
@@ -1353,6 +1353,8 @@ _mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers)
|
|||||||
ASSERT(fb == &DummyFramebuffer || fb->Name == framebuffers[i]);
|
ASSERT(fb == &DummyFramebuffer || fb->Name == framebuffers[i]);
|
||||||
|
|
||||||
/* check if deleting currently bound framebuffer object */
|
/* check if deleting currently bound framebuffer object */
|
||||||
|
if (ctx->Extensions.EXT_framebuffer_blit) {
|
||||||
|
/* separate draw/read binding points */
|
||||||
if (fb == ctx->DrawBuffer) {
|
if (fb == ctx->DrawBuffer) {
|
||||||
/* bind default */
|
/* bind default */
|
||||||
ASSERT(fb->RefCount >= 2);
|
ASSERT(fb->RefCount >= 2);
|
||||||
@@ -1363,6 +1365,15 @@ _mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers)
|
|||||||
ASSERT(fb->RefCount >= 2);
|
ASSERT(fb->RefCount >= 2);
|
||||||
_mesa_BindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0);
|
_mesa_BindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* only one binding point for read/draw buffers */
|
||||||
|
if (fb == ctx->DrawBuffer || fb == ctx->ReadBuffer) {
|
||||||
|
/* bind default */
|
||||||
|
ASSERT(fb->RefCount >= 2);
|
||||||
|
_mesa_BindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* remove from hash table immediately, to free the ID */
|
/* remove from hash table immediately, to free the ID */
|
||||||
_mesa_HashRemove(ctx->Shared->FrameBuffers, framebuffers[i]);
|
_mesa_HashRemove(ctx->Shared->FrameBuffers, framebuffers[i]);
|
||||||
|
@@ -82,12 +82,6 @@ compute_max_element(struct gl_client_array *array)
|
|||||||
} else {
|
} else {
|
||||||
array->_MaxElement = 0;
|
array->_MaxElement = 0;
|
||||||
}
|
}
|
||||||
/* Compute the max element we can access in the VBO without going
|
|
||||||
* out of bounds.
|
|
||||||
*/
|
|
||||||
array->_MaxElement = ((GLsizeiptrARB) array->BufferObj->Size
|
|
||||||
- (GLsizeiptrARB) array->Ptr + array->StrideB
|
|
||||||
- array->_ElementSize) / array->StrideB;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* user-space array, no idea how big it is */
|
/* user-space array, no idea how big it is */
|
||||||
|
@@ -688,6 +688,16 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
|
|||||||
* or we can read/write out of memory in several different places!
|
* or we can read/write out of memory in several different places!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Catch/fix some potential user errors */
|
||||||
|
if (type == GL_UNSIGNED_BYTE) {
|
||||||
|
start = MIN2(start, 0xff);
|
||||||
|
end = MIN2(end, 0xff);
|
||||||
|
}
|
||||||
|
else if (type == GL_UNSIGNED_SHORT) {
|
||||||
|
start = MIN2(start, 0xffff);
|
||||||
|
end = MIN2(end, 0xffff);
|
||||||
|
}
|
||||||
|
|
||||||
if (end >= ctx->Array.ArrayObj->_MaxElement) {
|
if (end >= ctx->Array.ArrayObj->_MaxElement) {
|
||||||
/* the max element is out of bounds of one or more enabled arrays */
|
/* the max element is out of bounds of one or more enabled arrays */
|
||||||
warnCount++;
|
warnCount++;
|
||||||
@@ -738,6 +748,10 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Set 'end' to the max possible legal value */
|
||||||
|
assert(ctx->Array.ArrayObj->_MaxElement >= 1);
|
||||||
|
end = ctx->Array.ArrayObj->_MaxElement - 1;
|
||||||
}
|
}
|
||||||
else if (0) {
|
else if (0) {
|
||||||
_mesa_printf("glDraw[Range]Elements{,BaseVertex}"
|
_mesa_printf("glDraw[Range]Elements{,BaseVertex}"
|
||||||
|
Reference in New Issue
Block a user