[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#316012: xlibmesa-gl-dev: glTexImage2D doesn't accept NULL as texture data (as GL 1.1 accepts)



Package: xlibmesa-gl-dev
Version: 4.3.0.dfsg.1-14
Severity: normal


glTexImage2D segfaults when NULL is passed as texture data, this is accepted in 
OpenGL >= 1.1: 
  
  " In GL version 1.1 or greater, pixels may be a NULL pointer. In this case
    texture memory is allocated to accommodate a texture of width width and
    height height. You can then download subtextures to initialize this texture
    memory. The image is undefined if the user tries to apply an uninitialized
    portion of the texture image to a primitive. "

Note, this was tested only on a Voodoo 3000 and the tdfx driver. glxinfo
output is attached and also segfaulting test.




-- System Information:
Debian Release: testing/unstable
  APT prefers oldstable
  APT policy: (500, 'oldstable'), (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.10-1-k7
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages xlibmesa-gl-dev depends on:
ii  libc6-dev [libc-dev]     2.3.2.ds1-22    GNU C Library: Development Librari
ii  libx11-dev               4.3.0.dfsg.1-14 X Window System protocol client li
ii  libxext-dev              4.3.0.dfsg.1-14 X Window System miscellaneous exte
ii  x-dev                    4.3.0.dfsg.1-14 X protocol development files
ii  xfree86-common           4.3.0.dfsg.1-14 X Window System (XFree86) infrastr
ii  xlibmesa-gl              4.3.0.dfsg.1-14 Mesa 3D graphics library [XFree86]

xlibmesa-gl-dev recommends no packages.

-- no debconf information
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
client glx vendor string: SGI
client glx version string: 1.2
client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
OpenGL vendor string: VA Linux Systems, Inc.
OpenGL renderer string: Mesa DRI 20020221 Voodoo3 x86/MMX/3DNow!/SSE
OpenGL version string: 1.2 Mesa 4.0.4
OpenGL extensions:
    GL_ARB_multitexture, GL_ARB_transpose_matrix, GL_EXT_abgr, GL_EXT_bgra, 
    GL_EXT_clip_volume_hint, GL_EXT_compiled_vertex_array, 
    GL_EXT_packed_pixels, GL_EXT_paletted_texture, GL_EXT_polygon_offset, 
    GL_EXT_rescale_normal, GL_EXT_texture3D, GL_EXT_texture_env_add, 
    GL_EXT_texture_object, GL_EXT_texture_lod_bias, GL_EXT_vertex_array, 
    GL_HP_occlusion_test, GL_IBM_rasterpos_clip, GL_MESA_window_pos, 
    GL_NV_texgen_reflection
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x23 16 tc  1 16  0 r  .  .  5  6  5  0  0  0  0  0  0  0  0  0 0 None
0x24 16 tc  1 16  0 r  .  .  5  6  5  0  0  0  8  0  0  0  0  0 0 Slow
0x25 16 tc  1 16  0 r  .  .  5  6  5  0  0  0  0 16 16 16  0  0 0 Slow
0x26 16 tc  1 16  0 r  .  .  5  6  5  0  0  0  8 16 16 16  0  0 0 Slow
0x27 16 tc  1 16  0 r  .  .  5  6  5  0  0 16  0  0  0  0  0  0 0 None
0x28 16 tc  1 16  0 r  .  .  5  6  5  0  0 16  8  0  0  0  0  0 0 Slow
0x29 16 tc  1 16  0 r  .  .  5  6  5  0  0 16  0 16 16 16  0  0 0 Slow
0x2a 16 tc  1 16  0 r  .  .  5  6  5  0  0 16  8 16 16 16  0  0 0 Slow
0x2b 16 tc  1 16  0 r  y  .  5  6  5  0  0  0  0  0  0  0  0  0 0 None
0x2c 16 tc  1 16  0 r  y  .  5  6  5  0  0  0  8  0  0  0  0  0 0 Slow
0x2d 16 tc  1 16  0 r  y  .  5  6  5  0  0  0  0 16 16 16  0  0 0 Slow
0x2e 16 tc  1 16  0 r  y  .  5  6  5  0  0  0  8 16 16 16  0  0 0 Slow
0x2f 16 tc  1 16  0 r  y  .  5  6  5  0  0 16  0  0  0  0  0  0 0 None
0x30 16 tc  1 16  0 r  y  .  5  6  5  0  0 16  8  0  0  0  0  0 0 Slow
0x31 16 tc  1 16  0 r  y  .  5  6  5  0  0 16  0 16 16 16  0  0 0 Slow
0x32 16 tc  1 16  0 r  y  .  5  6  5  0  0 16  8 16 16 16  0  0 0 Slow
0x33 16 dc  1 16  0 r  .  .  5  6  5  0  0  0  0  0  0  0  0  0 0 None
0x34 16 dc  1 16  0 r  .  .  5  6  5  0  0  0  8  0  0  0  0  0 0 Slow
0x35 16 dc  1 16  0 r  .  .  5  6  5  0  0  0  0 16 16 16  0  0 0 Slow
0x36 16 dc  1 16  0 r  .  .  5  6  5  0  0  0  8 16 16 16  0  0 0 Slow
0x37 16 dc  1 16  0 r  .  .  5  6  5  0  0 16  0  0  0  0  0  0 0 None
0x38 16 dc  1 16  0 r  .  .  5  6  5  0  0 16  8  0  0  0  0  0 0 Slow
0x39 16 dc  1 16  0 r  .  .  5  6  5  0  0 16  0 16 16 16  0  0 0 Slow
0x3a 16 dc  1 16  0 r  .  .  5  6  5  0  0 16  8 16 16 16  0  0 0 Slow
0x3b 16 dc  1 16  0 r  y  .  5  6  5  0  0  0  0  0  0  0  0  0 0 None
0x3c 16 dc  1 16  0 r  y  .  5  6  5  0  0  0  8  0  0  0  0  0 0 Slow
0x3d 16 dc  1 16  0 r  y  .  5  6  5  0  0  0  0 16 16 16  0  0 0 Slow
0x3e 16 dc  1 16  0 r  y  .  5  6  5  0  0  0  8 16 16 16  0  0 0 Slow
0x3f 16 dc  1 16  0 r  y  .  5  6  5  0  0 16  0  0  0  0  0  0 0 None
0x40 16 dc  1 16  0 r  y  .  5  6  5  0  0 16  8  0  0  0  0  0 0 Slow
0x41 16 dc  1 16  0 r  y  .  5  6  5  0  0 16  0 16 16 16  0  0 0 Slow
0x42 16 dc  1 16  0 r  y  .  5  6  5  0  0 16  8 16 16 16  0  0 0 Slow
#include <GL/glut.h>
#include <stdio.h>

int main(int argc, char **argv)
{
  unsigned char imageData[32*32*4]; 

  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
  glutCreateWindow("test");
  printf("Normal Texture upload...\n");
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 32, 32, 0, GL_RGB, GL_UNSIGNED_BYTE, (void *)imageData);
  printf("Using NULL as data...\n");
  // Now this segfaults. 
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 32, 32, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
	       
}

Reply to: