Hello,

glCopyPixels() and glDrawPixels() in src/mesa/state_tracker/st_cb_drawpixels.c
create a temporary texture to do their work, however they do not check
if the pipe backend support NPOT textures or not, and so proper
rendering fails on hardware that only support POT sized textures.

I started writing a patch that simply checks 
ctx->Extensions.ARB_texture_non_power_of_two
for GL_FALSE, and calculate POT dimensions for said texture. Are there
some cases in these functions that would prevent it from working, when
using a bigger texture than needed by the operations? Also, I think
glBitmap() suffer the same issue.

For Nvidia hardware, all cards before Geforce 6 do not support NPOT
textures; only POT textures on NV04 (TNT); POT and RECT textures from
NV10 (Geforce 1) to NV30 (Geforce FX).

-- 
Patrice Mandin
WWW: http://pmandin.atari.org/
Programmeur Linux, Atari
Spécialité: Développement, jeux




------------------------------------------------------------------------------
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to