During the changes made years ago to MiniGL version 2.21 I remember that we had encountered some bugs in PrBoom Plus (HunoPPC version) Some were obviously fixed but it seems we still have a couple of more bugs left that lead in certain graphical glitch
1) In certain levels of the game we can noticed some small colored dots (white or red) into the floor's texture
2) In GL mode the enemy bodies are displayed incorrectly in respect to the floor
If needed this is the PrBoom Plus's output:
Quote:
M_LoadDefaults: Load system defaults. default file: PROGDIR:prboom-plus.cfg found PROGDIR:prboom-plus.wad
prboom-plus v2.5.1.3 (http://prboom-plus.sourceforge.net/) found PROGDIR:doom2.wad IWAD found: PROGDIR:doom2.wad PrBoom-Plus (built Nov 28 2012 21:58:51), playing: DOOM 2: Hell on Earth PrBoom-Plus is released under the GNU General Public license v2.0. You are welcome to redistribute it under certain conditions. It comes with ABSOLUTELY NO WARRANTY. See the file COPYING for details. V_Init: allocate screens. V_InitMode: using OpenGL video mode I_InitScreenResolution: Using resolution 640x480 found PROGDIR:RlmChaos.WAD found PROGDIR:prboom-plus.wad D_InitNetGame: Checking for network game. W_Init: Init WADfiles. adding PROGDIR:doom2.wad adding PROGDIR:RlmChaos.WAD adding PROGDIR:prboom-plus.wad W_InitCache
M_Init: Init miscellaneous info. R_Init: Init DOOM refresh daemon - R_LoadTrigTables: Endianness...corrected. R_InitData: Textures Flats Sprites Tranmap build [........] R_Init: R_InitPlanes R_InitLightTables R_InitSkyMap R_InitTranslationsTables R_InitPatches P_Init: Init Playloop state. I_Init: Setting up machine state. I_InitSound: configured audio device with 1024 samples/slice I_InitSound: sound module ready S_Init: Setting up sound. S_Init: default sfx volume 3 HU_Init: Setting up heads up display. I_InitGraphics: 640x480 I_UpdateVideoMode: 0x80000002, SDL buffer, direct access SDL OpenGL PixelFormat: SDL_GL_RED_SIZE: 8 SDL_GL_GREEN_SIZE: 8 SDL_GL_BLUE_SIZE: 8 SDL_GL_STENCIL_SIZE: 8 SDL_GL_ACCUM_RED_SIZE: 0 SDL_GL_ACCUM_GREEN_SIZE: 0 SDL_GL_ACCUM_BLUE_SIZE: 0 SDL_GL_ACCUM_ALPHA_SIZE: 0 SDL_GL_DOUBLEBUFFER: 1 SDL_GL_BUFFER_SIZE: 32 SDL_GL_DEPTH_SIZE: 24 SDL_GL_MULTISAMPLESAMPLES: 0 SDL_GL_MULTISAMPLEBUFFERS: 0 SDL_GL_STENCIL_SIZE: 8 GL_VENDOR: The MiniGL Team GL_RENDERER: MiniGL/Warp3D ATI Radeon (radeon r200) GL_VERSION: 1.3 GL_EXTENSIONS: GL_MGL_packed_pixels GL_EXT_packed_pixels GL_EXT_bgra GL_EXT_color_table GL_EXT_vertex_array GL_NV_texgen_reflection GL_ARB_vertex_array_bgra GL_ARB_draw_elements_base_vertex GL_EXT_draw_range_elements GL_ARB_multitexture GL_EXT_compiled_vertex_arrays GL_EXT_texture_filter_anisotropic GL_ARB_texture_env_combine GL_EXT_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_EXT_texture_env_dot3 GL_ARB_texture_env_add GL_EXT_texture_env_add GL_ARB_vertex_buffer_object GL_ARB_map_buffer_range GL_ARB_texture_compression GL_EXT_texture_compression_s3tc using GL_EXT_texture_filter_anisotropic GL_MAX_TEXTURE_SIZE=2048 Using texture format GL_RGBA4. I_InitJoystick : invalid joystick 1 ST_Init: Init status bar. G_DoPlayDemo: playing demo with Doom/Doom2 v1.9 compatibility P_GetNodesVersion: using normal BSP nodes V_InitMode: using OpenGL video mode I_InitScreenResolution: Using resolution 640x480 I_UpdateVideoMode: 0x12, SDL buffer, direct access SDL OpenGL PixelFormat: SDL_GL_RED_SIZE: 1348728752 SDL_GL_GREEN_SIZE: 1348728752 SDL_GL_BLUE_SIZE: 1348728752 SDL_GL_STENCIL_SIZE: 1348728752 SDL_GL_ACCUM_RED_SIZE: 1348728752 SDL_GL_ACCUM_GREEN_SIZE: 1348728752 SDL_GL_ACCUM_BLUE_SIZE: 1348728752 SDL_GL_ACCUM_ALPHA_SIZE: 1348728752 SDL_GL_DOUBLEBUFFER: 1348728752 SDL_GL_BUFFER_SIZE: 1348728752 SDL_GL_DEPTH_SIZE: 1348728752 SDL_GL_MULTISAMPLESAMPLES: 1348728752 SDL_GL_MULTISAMPLEBUFFERS: 1348728752 SDL_GL_STENCIL_SIZE: 1348728752 GL_VENDOR: The MiniGL Team GL_RENDERER: MiniGL/Warp3D ATI Radeon (radeon r200) GL_VERSION: 1.3 GL_EXTENSIONS: GL_MGL_packed_pixels GL_EXT_packed_pixels GL_EXT_bgra GL_EXT_color_table GL_EXT_vertex_array GL_NV_texgen_reflection GL_ARB_vertex_array_bgra GL_ARB_draw_elements_base_vertex GL_EXT_draw_range_elements GL_ARB_multitexture GL_EXT_compiled_vertex_arrays GL_EXT_texture_filter_anisotropic GL_ARB_texture_env_combine GL_EXT_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_EXT_texture_env_dot3 GL_ARB_texture_env_add GL_EXT_texture_env_add GL_ARB_vertex_buffer_object GL_ARB_map_buffer_range GL_ARB_texture_compression GL_EXT_texture_compression_s3tc using GL_EXT_texture_filter_anisotropic GL_MAX_TEXTURE_SIZE=2048 Using texture format GL_RGBA4. P_GetNodesVersion: using normal BSP nodes P_SpawnMapThing: correcting bad flags (18407) (thing type 1) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18414) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 2011) P_SpawnMapThing: correcting bad flags (18407) (thing type 2012) P_SpawnMapThing: correcting bad flags (18407) (thing type 2018) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2008) P_SpawnMapThing: correcting bad flags (18407) (thing type 2025) P_SpawnMapThing: correcting bad flags (18407) (thing type 82) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 2018) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 70) P_SpawnMapThing: correcting bad flags (18415) (thing type 70) P_SpawnMapThing: correcting bad flags (18415) (thing type 70) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18415) (thing type 8) P_SpawnMapThing: correcting bad flags (18415) (thing type 2049) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18414) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 2025) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 58) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18411) (thing type 3001) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18411) (thing type 9) P_SpawnMapThing: correcting bad flags (18411) (thing type 9) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 2019) P_SpawnMapThing: correcting bad flags (18415) (thing type 2023) P_SpawnMapThing: correcting bad flags (18415) (thing type 2049) P_SpawnMapThing: correcting bad flags (18415) (thing type 2048) P_SpawnMapThing: correcting bad flags (18407) (thing type 65) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18407) (thing type 65) P_SpawnMapThing: correcting bad flags (18407) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3006) P_SpawnMapThing: correcting bad flags (18415) (thing type 3006) P_SpawnMapThing: correcting bad flags (18415) (thing type 3006) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 55) P_SpawnMapThing: correcting bad flags (18407) (thing type 55) P_SpawnMapThing: correcting bad flags (18407) (thing type 55) P_SpawnMapThing: correcting bad flags (18407) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18406) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18406) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 2011) P_SpawnMapThing: correcting bad flags (18407) (thing type 2011) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 3002) P_SpawnMapThing: correcting bad flags (18407) (thing type 2013) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18414) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 58) P_SpawnMapThing: correcting bad flags (18407) (thing type 3002) P_SpawnMapThing: correcting bad flags (18407) (thing type 58) P_SpawnMapThing: correcting bad flags (18407) (thing type 70) P_SpawnMapThing: correcting bad flags (18407) (thing type 70) P_SpawnMapThing: correcting bad flags (18407) (thing type 70) P_SpawnMapThing: correcting bad flags (18407) (thing type 70) P_SpawnMapThing: correcting bad flags (18407) (thing type 13) P_SpawnMapThing: correcting bad flags (18415) (thing type 45) P_SpawnMapThing: correcting bad flags (18415) (thing type 45) P_SpawnMapThing: correcting bad flags (18415) (thing type 45) P_SpawnMapThing: correcting bad flags (18415) (thing type 45) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18415) (thing type 2028) P_SpawnMapThing: correcting bad flags (18415) (thing type 2028) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18412) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2028) P_SpawnMapThing: correcting bad flags (18415) (thing type 2028) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2003) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2049) P_SpawnMapThing: correcting bad flags (18415) (thing type 2049) P_SpawnMapThing: correcting bad flags (18415) (thing type 2048) P_SpawnMapThing: correcting bad flags (18415) (thing type 2048) P_SpawnMapThing: correcting bad flags (18415) (thing type 2002) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18415) (thing type 54) P_SpawnMapThing: correcting bad flags (18407) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18406) (thing type 3001) P_SpawnMapThing: correcting bad flags (18414) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 2035) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2014) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18414) (thing type 3002) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 2005) P_SpawnMapThing: correcting bad flags (18407) (thing type 5) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 2023) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 6) P_SpawnMapThing: correcting bad flags (18415) (thing type 3004) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3001) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18412) (thing type 3002) P_SpawnMapThing: correcting bad flags (18412) (thing type 65) P_SpawnMapThing: correcting bad flags (18412) (thing type 65) P_SpawnMapThing: correcting bad flags (18412) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 9) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18407) (thing type 3004) P_SpawnMapThing: correcting bad flags (18404) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18406) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 3001) P_SpawnMapThing: correcting bad flags (18407) (thing type 58) P_SpawnMapThing: correcting bad flags (18404) (thing type 58) P_SpawnMapThing: correcting bad flags (18407) (thing type 2012) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2015) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18407) (thing type 2014) P_SpawnMapThing: correcting bad flags (18412) (thing type 65) P_SpawnMapThing: correcting bad flags (18412) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18412) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 2025) P_SpawnMapThing: correcting bad flags (18407) (thing type 14) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18415) (thing type 9) P_SpawnMapThing: correcting bad flags (18414) (thing type 3005) P_SpawnMapThing: correcting bad flags (18412) (thing type 3005) P_SpawnMapThing: correcting bad flags (18412) (thing type 69) P_SpawnMapThing: correcting bad flags (18412) (thing type 69) P_SpawnMapThing: correcting bad flags (18412) (thing type 66) P_SpawnMapThing: correcting bad flags (18404) (thing type 65) P_SpawnMapThing: correcting bad flags (18407) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 58) P_SpawnMapThing: correcting bad flags (18407) (thing type 2012) P_SpawnMapThing: correcting bad flags (18404) (thing type 2001) P_SpawnMapThing: correcting bad flags (18415) (thing type 2008) P_SpawnMapThing: correcting bad flags (18407) (thing type 2011) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2011) P_SpawnMapThing: correcting bad flags (18414) (thing type 37) P_SpawnMapThing: correcting bad flags (18414) (thing type 37) P_SpawnMapThing: correcting bad flags (18414) (thing type 2035) P_SpawnMapThing: correcting bad flags (18414) (thing type 2035) P_SpawnMapThing: correcting bad flags (18414) (thing type 41) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 2015) P_SpawnMapThing: correcting bad flags (18414) (thing type 36) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 3002) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 65) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2015) P_SpawnMapThing: correcting bad flags (18415) (thing type 2028) P_SpawnMapThing: correcting bad flags (18415) (thing type 2028) P_SpawnMapThing: correcting bad flags (18415) (thing type 2028) P_SpawnMapThing: correcting bad flags (18407) (thing type 57) P_SpawnMapThing: correcting bad flags (18407) (thing type 57) P_SpawnMapThing: correcting bad flags (18412) (thing type 69) P_SpawnMapThing: correcting bad flags (18415) (thing type 46) P_SpawnMapThing: correcting bad flags (18415) (thing type 2008) P_SpawnMapThing: correcting bad flags (18415) (thing type 2008) P_SpawnMapThing: correcting bad flags (18407) (thing type 2) P_SpawnMapThing: correcting bad flags (18407) (thing type 3) P_SpawnMapThing: correcting bad flags (18407) (thing type 4) P_SpawnMapThing: correcting bad flags (18407) (thing type 11) P_SpawnMapThing: correcting bad flags (18407) (thing type 11) P_SpawnMapThing: correcting bad flags (18407) (thing type 11) P_SpawnMapThing: correcting bad flags (18407) (thing type 11) P_SpawnMapThing: correcting bad flags (18407) (thing type 2001) P_SpawnMapThing: correcting bad flags (18407) (thing type 2001) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 48) P_SpawnMapThing: correcting bad flags (18407) (thing type 41) P_SpawnMapThing: correcting bad flags (18407) (thing type 36) P_SpawnMapThing: correcting bad flags (18407) (thing type 36) P_SpawnMapThing: correcting bad flags (18407) (thing type 31) P_SpawnMapThing: correcting bad flags (18407) (thing type 31) P_SpawnMapThing: correcting bad flags (18415) (thing type 2012) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18415) (thing type 2011) P_SpawnMapThing: correcting bad flags (18414) (thing type 2048) P_SpawnMapThing: correcting bad flags (18414) (thing type 68) P_SpawnMapThing: correcting bad flags (18407) (thing type 2011) P_SpawnMapThing: correcting bad flags (18407) (thing type 2008) P_SpawnMapThing: correcting bad flags (18407) (thing type 2008) P_SpawnMapThing: correcting bad flags (18407) (thing type 2008) P_SpawnMapThing: correcting bad flags (18407) (thing type 2008) I_ShutdownMusic: removed /tmp/prboom-plus-music-000464 I_ShutdownSound: prboom-plus v2.5.1.3 (http://prboom-plus.sourceforge.net/)
A clamping issue could indeed cause those seams, or some slight differences in vertex coordinates. That's more likely the culprit than a shader compiler bug, especially for a simple skybox.
EDIT: Texture clamping issues are an app/game bug. You need to change the texture's edge clamping rules. Try changing the texture's GL_TEXTURE_WRAP_S/T modes to GL_MIRRORED_REPEAT.
@Hans @Raziel Huh?! Isn't that the MiniGL thread? AFAIK MiniGL (and Warp3D) only support GL_REPEAT and, well, "something else" That "something else" (there is no parameter check in MGL here...) always maps to W3D_CLAMP (as would GL_MIRRORED_REPEAT...).
Now, I can only speek for the R200 driver, but here W3D_CLAMP maps to the function "clamp to last texel", which is what you usually want and which coresponds to GL_CLAMP_TO_EDGE (not GL_CLAMP!). This definitely cannot produce such artefacts as you see here.
@Raziel What card / driver are you running your test on? To me it looks as if it would falsely switch to a wrap function like GL_CLAMP_TO_BORDER or GL_CLAMP asuming a texture with a single colored border. You could try searching the code for everything that starts with GL_CLAMP temporarily replace it by GL_REPEAT to see if that changes something.
Or maybe it's a numeric issue and the cube's coordinates are just a tiny tiny bit off so that what you see as lines is actually the background color shining through. Try locating the glClear command in the code and temporarily put a glClearColor(1,0,0,1) in front of it. If the lines become red, then this is the problem.
EDIT: after zooming into the picture I don't think its the numeric issue.
I've found something in the specific code, two instances with remarks...
gfx_opengl_texture.cpp
// TODO: If non power of two textures are unavailable this clamping
// has no effect on the padded sides (resulting in white lines on the edges)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
gfx_tinygl_texture.cpp
// NOTE: TinyGL doesn't have issues with white lines so doesn't need use TGL_CLAMP_TO_EDGE
tglTexParameteri(TGL_TEXTURE_2D, TGL_TEXTURE_WRAP_S, TGL_REPEAT);
tglTexParameteri(TGL_TEXTURE_2D, TGL_TEXTURE_WRAP_T, TGL_REPEAT);
kas1e sent me here from the ogles2 thread, so i thought it might be the rught place...it obviously isn't
No no, it may well be the right place, if you are using MiniGL under the hood and not e.g. gl4es or ogles2 directly. Are you using MiniGL? For now I asume you do (therefore you can also ignore the gfx_tinygl_texture.cpp )
Anyway, as I said in my previous post: On MiniGL GL_CLAMP_TO_EDGE maps to W3D_CLAMP and on R200 this maps to "clamp to last texel" which is what you'd expect and which doesn't produce such artefacts. The question is what your RadeonHD driver makes out of it. Therefore just try out what happens if you use GL_REPEAT (and nothing else!) instead of GL_CLAMP_TO_EDGE. If that doesn't get rid of your black lines then it's not wrap-mode.
Btw.: those "white lines" comments make no sense to me.
@Hans wasn't there a similar issue once in Warp3D Nova and the Q3 mirrors?
wrt to "white lines" Maybe they got those visible borders in white instead of black while developing?
I changed GL_CLAMP_TO_EDGE to GL_REPEAT but there is no change whatsoever, the borders persist. (I also tried with GL_MIRRORED_REPEAT, like Hans was suggesting, but that didn't help either)
I changed GL_CLAMP_TO_EDGE to GL_REPEAT but there is no change whatsoever
Then revert to GL_CLAMP_TO_EDGE and instead try the following please: search the code for GL_TEXTURE_MIN_FILTER and change any eventual ...MIPMAP... value (the respective commands last parameter) to GL_LINEAR, e.g. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
The reason is that IIRC W3D Nova had some issue with mipmapping and such artefacts in Q3 under certain circumstances, maybe the "normal" Warp3D driver on your RadeonHD suffer from sth. similar.
Quote:
(I also tried with GL_MIRRORED_REPEAT
As being said this made no sense anyway as it would behave exactly like everything else not being GL_REPEAT on MiniGL.
// Pad the textures if non power of two support is unavailable
if (OpenGLContext.NPOTSupported) {
internalHeight = height;
internalWidth = width;
} else {
internalHeight = upperPowerOfTwo(height);
internalWidth = upperPowerOfTwo(width);
}
if (format.bytesPerPixel == 4) {
assert(surface->format == getRGBAPixelFormat());
// TODO: If non power of two textures are unavailable this clamping
// has no effect on the padded sides (resulting in white lines on the edges)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
update(surface);
}
That "non power of two" comments are regarding to not available ARB shaders, i believe? Because i get this on start of the game: Quote:
Initializing OpenGL Renderer WARNING: GL_ARB_texture_non_power_of_two is not available.!
@Raziel Then the most likely culprit now becomes the game itself. It obviously contains code somewhere for upscaling non-power-of-two-textures, because it uses a texture-size upscaled to the next power of two if NPOT textures are not supported. Are the sky-cube textures NPOT?
@Raziel NPOT = Non-Power-Of-Two What are the pixel sizes of the textures used in your screenshot ? Can you open the texture files in your favorite paint-program and tell me? If they are not a power-of-two then the game will apparently scale them to the next higher power-of-two. And that (unknown) code may be buggy.
The Non-Power-Of-Two (NPOT) warning may well be why it looks okay on other OSes, and not on AmigaOS with MiniGL. The hardware handles NPOT on the other OSes, whereas with MiniGL the game/app needs to convert those textures to have a width and height that is a power-of-two. If they simply pad the texture with white/black/whatever, then that border can leak through as seams.
Answering some of your queries/comments: 1. The RadeonHD Warp3D driver correctly handles all of the texture wrap modes 2. The triangle edges that were visible in Q3 via GL4ES look different, and were due to the shader compiler not generating "exit whole-quad-mode" code for all cases when it's necessary. I went through, and added that everywhere where it was needed. While it's always possible I missed one, it's very unlikely to be triggered by a simple skybox render 3. The Warp3D driver already has the "exit whole-quad-mode" code, which is called whenever textures are used