Page 1 of 1

Red Planets with OpenGL2.0

Posted: 07.12.2005, 18:26
by ANDREA
Hello. I've just substituted my old nVidia GeForce 4600 Ti 128 MB with a new 6800 ULTRA 256 Mb AGP-8x,
but having no more money for my hobbies I'm obliged to use it on my old AGP-4x motherboard.
Obviously I've uninstalled the previous drivers, and after this I've installed the latest 81.95. :wink:
I found a notable increase in speed, and that I could use the settings:
BASIC,
MultiTexture,
OpenGL Vertex Program,
OpenGL Vertex Program/nVidia Combiners,
Nvidia GeForce FX,
but NOT the OpenGL 2.0, because some (yes, only SOME!) planets were shown as red balls (before
card's change all was working flawlessly). :cry: :cry: :cry: :cry: :cry:
The strange is that e.g for the Earth, the new Don's Realistic-Earth16k.dds is working OK, while BlueMarble DDS is NOT working. :cry:
The same thing happens in 1.4.0pre6, FT1.1 and 1.2, and this make me think that shaders are not involved. 8O
Another chance, may be the use of an AGP 8x graphic card on an AGP 4x Motherboard can give such problems? 8O
Please help me, I'm desperate.
Bye and thank you VEEEry much.

Andrea :D

Posted: 07.12.2005, 18:35
by chris
Could you post the contents of the shaders.log file from the Celestia directory? This will let me diagnose the problem very quickly.

--Chris

Posted: 07.12.2005, 18:57
by ANDREA
chris wrote:Could you post the contents of the shaders.log file from the Celestia directory? This will let me diagnose the problem very quickly.
--Chris

Hello Chris, happy to read from you.
BTW, I have no shaders.log files in the (many!) Celestia installations I have on my PC, but may be I have found something of this kind on the desktop, and for a mistake I cancelled it. :oops:

ADDED Later:
I have it, but it's empty! :?:

Perhaps this can help, I hope:

Vendor: NVIDIA Corporation
Renderer: GeForce 6800 Ultra/AGP/SSE/3DNOW!
Version: 2.0.1
Max simultaneous textures: 4
Max texture size: 4096

Supported Extensions:

GL_ARB_color_buffer_float

GL_ARB_depth_texture

GL_ARB_draw_buffers

GL_ARB_fragment_program

GL_ARB_fragment_program_shadow

GL_ARB_fragment_shader

GL_ARB_half_float_pixel

GL_ARB_imaging

GL_ARB_multisample

GL_ARB_multitexture

GL_ARB_occlusion_query

GL_ARB_pixel_buffer_object

GL_ARB_point_parameters

GL_ARB_point_sprite

GL_ARB_shadow

GL_ARB_shader_objects

GL_ARB_shading_language_100

GL_ARB_texture_border_clamp

GL_ARB_texture_compression

GL_ARB_texture_cube_map

GL_ARB_texture_env_add

GL_ARB_texture_env_combine

GL_ARB_texture_env_dot3

GL_ARB_texture_float

GL_ARB_texture_mirrored_repeat

GL_ARB_texture_non_power_of_two

GL_ARB_texture_rectangle

GL_ARB_transpose_matrix

GL_ARB_vertex_buffer_object

GL_ARB_vertex_program

GL_ARB_vertex_shader

GL_ARB_window_pos

GL_ATI_draw_buffers

GL_ATI_texture_float

GL_ATI_texture_mirror_once

GL_S3_s3tc

GL_EXT_texture_env_add

GL_EXT_abgr

GL_EXT_bgra

GL_EXT_blend_color

GL_EXT_blend_equation_separate

GL_EXT_blend_func_separate

GL_EXT_blend_minmax

GL_EXT_blend_subtract

GL_EXT_compiled_vertex_array

GL_EXT_Cg_shader

GL_EXT_depth_bounds_test

GL_EXT_draw_range_elements

GL_EXT_fog_coord

GL_EXT_framebuffer_object

GL_EXT_multi_draw_arrays

GL_EXT_packed_depth_stencil

GL_EXT_packed_pixels

GL_EXT_pixel_buffer_object

GL_EXT_point_parameters

GL_EXT_rescale_normal

GL_EXT_secondary_color

GL_EXT_separate_specular_color

GL_EXT_shadow_funcs

GL_EXT_stencil_two_side

GL_EXT_stencil_wrap

GL_EXT_texture3D

GL_EXT_texture_compression_s3tc

GL_EXT_texture_cube_map

GL_EXT_texture_edge_clamp

GL_EXT_texture_env_combine

GL_EXT_texture_env_dot3

GL_EXT_texture_filter_anisotropic

GL_EXT_texture_lod

GL_EXT_texture_lod_bias

GL_EXT_texture_mirror_clamp

GL_EXT_texture_object

GL_EXT_texture_sRGB

GL_EXT_timer_query

GL_EXT_vertex_array

GL_HP_occlusion_test

GL_IBM_rasterpos_clip

GL_IBM_texture_mirrored_repeat

GL_KTX_buffer_region

GL_NV_blend_square

GL_NV_copy_depth_to_color

GL_NV_depth_clamp

GL_NV_fence

GL_NV_float_buffer

GL_NV_fog_distance

GL_NV_fragment_program

GL_NV_fragment_program_option

GL_NV_fragment_program2

GL_NV_half_float

GL_NV_light_max_exponent

GL_NV_multisample_filter_hint

GL_NV_occlusion_query

GL_NV_packed_depth_stencil

GL_NV_pixel_data_range

GL_NV_point_sprite

GL_NV_primitive_restart

GL_NV_register_combiners

GL_NV_register_combiners2

GL_NV_texgen_reflection

GL_NV_texture_compression_vtc

GL_NV_texture_env_combine4

GL_NV_texture_expand_normal

GL_NV_texture_rectangle

GL_NV_texture_shader

GL_NV_texture_shader2

GL_NV_texture_shader3

GL_NV_vertex_array_range

GL_NV_vertex_array_range2

GL_NV_vertex_program

GL_NV_vertex_program1_1

GL_NV_vertex_program2

GL_NV_vertex_program2_option

GL_NV_vertex_program3

GL_NVX_conditional_render

GL_SGIS_generate_mipmap

GL_SGIS_texture_lod

GL_SGIX_depth_texture

GL_SGIX_shadow

GL_SUN_slice_accum

GL_WIN_swap_hint

WGL_EXT_swap_control

Bye and thanks a lot for your help. :wink:

Andrea :D

Posted: 07.12.2005, 19:12
by Juffo-Wup
I'm also getting some red planets with OpenGL 2.0 after upgrading to the latest Nvidia linux drivers (1.0.8174). For some reason only Earth, Pluto and it's moon seem to be affected.

~/shaders.log

Code: Select all

Vertex shader source:
  1: uniform struct {
  2:    vec3 direction;
  3:    vec3 diffuse;
  4:    vec3 specular;
  5:    vec3 halfVector;
  6: } lights[1];
  7: uniform float shininess;
  8: uniform vec3 ambientColor;
  9: varying vec4 diff;
 10: varying vec4 spec;
 11: varying vec2 diffTexCoord;
 12: varying vec2 nightTexCoord;
 13: varying float totalLight;
 14: uniform float textureOffset;
 15:
 16: void main(void)
 17: {
 18: float nDotVP;
 19: float nDotHV;
 20: diff = vec4(ambientColor, 1.0);
 21: nDotVP = max(0.0, dot(gl_Normal, lights[0].direction));
 22: nDotHV = max(0.0, dot(gl_Normal, lights[0].halfVector));
 23: diff.rgb += lights[0].diffuse * nDotVP;
 24: spec.rgb += lights[0].specular * (pow(nDotHV, shininess) * nDotVP);
 25: totalLight += nDotVP;
 26: totalLight = 1.0 - totalLight;
 27: totalLight = totalLight * totalLight * totalLight * totalLight;
 28: diffTexCoord = gl_MultiTexCoord0.st;
 29: diffTexCoord.x += textureOffset;
 30: nightTexCoord = gl_MultiTexCoord1.st;
 31: gl_Position = ftransform();
 32: }

Fragment shader source:
  1: varying vec4 diff;
  2: varying vec4 spec;
  3: varying vec2 diffTexCoord;
  4: uniform sampler2D diffTex;
  5: varying vec2 nightTexCoord;
  6: uniform sampler2D nightTex;
  7: varying float totalLight;
  8:
  9: void main(void)
 10: {
 11: vec4 color;
 12: color = texture2D(diffTex, diffTexCoord.st);
 13: gl_FragColor = color * diff + color.a * spec;
 14: gl_FragColor += texture2D(nightTex, nightTexCoord.st) * totalLight;
 15: }

Error linking shader program:
Vertex info
-----------
Internal error: assembly compile error for vertex shader at offset 1606:
-- error message --
line 46, column 19:  error: invalid operand variable
line 53, column 44:  error: invalid operand variable
-- internal assembly text --
!!ARBvp1.0
OPTION NV_vertex_program3;
# cgc version 1.5.0000, build date Nov 22 2005 18:53:41
# command line args:
#vendor NVIDIA Corporation
#version 1.0.02
#profile vp40
#program main
#semantic gl_ModelViewProjectionMatrixTranspose
#semantic lights
#semantic shininess
#semantic textureOffset
#semantic ambientColor
#var float3 gl_Normal : $vin.NORMAL : NORMAL : -1 : 1
#var float4 gl_Vertex : $vin.POSITION : POSITION : -1 : 1
#var float4 gl_MultiTexCoord0 : $vin.TEXCOORD0 : TEXCOORD0 : -1 : 1
#var float4 gl_MultiTexCoord1 : $vin.TEXCOORD1 : TEXCOORD1 : -1 : 1
#var float4 gl_Position : $vout.POSITION : HPOS : -1 : 1
#var float4x4 gl_ModelViewProjectionMatrixTranspose :  : c[0], 4 : -1 : 1
#var float3 lights[0].direction :  : c[4] : -1 : 1
#var float3 lights[0].diffuse :  : c[6] : -1 : 1
#var float3 lights[0].specular :  : c[10] : -1 : 1
#var float3 lights[0].halfVector :  : c[8] : -1 : 1
#var float shininess :  : c[9] : -1 : 1
#var float2 nightTexCoord : $vout.TEX2 : TEX2 : -1 : 1
#var float textureOffset :  : c[11] : -1 : 1
#var float4 diff : $vout.TEX0 : TEX0 : -1 : 1
#var float2 diffTexCoord : $vout.TEX1 : TEX1 : -1 : 1
#var float totalLight : $vout.TEX3 : TEX3 : -1 : 1
#var float3 ambientColor :  : c[7] : -1 : 1
#var float4 spec : $vout.TEX4 : TEX4 : -1 : 1
#const c[5] = 0 1
PARAM c[12] = { program.local[0..4],
      { 0, 1 },
      program.local[6..11] };
TEMP R0;
TEMP R1;
TEMP CC;
BB1:
DP3   R0.x, vertex.normal, c[4];
MAX   R0.x, R0, c[5];
MUL   R1.xyz, R0.x, c[6];
ADD   result.texcoord[0].xyz, R1, c[7];
DP3   R0.y, vertex.normal, c[8];
MAX   R1.xy, R0.y, c[5].x;
ADD   R0.y, R0.x, result.texcoord[3].x;
ADD   R0.y, -R0, c[5];
MOV   R1.z, c[9].x;
LIT   R0.z, R1.xyzz;
MUL   R0.x, R0, R0.z;
MUL   R0.w, R0.y, R0.y;
MUL   R0.z, R0.w, R0.y;
MAD   result.texcoord[4].xyz, R0.x, c[10], result.texcoord[4];
MUL   result.texcoord[3].x, R0.z, R0.y;
MOV   result.texcoord[2].xy, vertex.texcoord[1];
MOV   result.texcoord[0].w, c[5].y;
ADD   result.texcoord[1].x, vertex.texcoord[0], c[11];
MOV   result.texcoord[1].y, vertex.texcoord[0];
DP4   result.position.w, vertex.position, c[3];
DP4   result.position.z, vertex.position, c[2];
DP4   result.position.y, vertex.position, c[1];
DP4   result.position.x, vertex.position, c[0];
END
# 23 instructions, 2 R-regs


I'm using Celestia-FT1.2 with a GeForce 6600 GT 128MB.

Posted: 07.12.2005, 19:47
by chris
An NVIDIA driver bug is causing this problem. It doesn't happen with older drivers.

--Chris

Posted: 07.12.2005, 20:13
by ANDREA
chris wrote:An NVIDIA driver bug is causing this problem. It doesn't happen with older drivers. --Chris

This is a good info, Chris, thank you. :D
So it can be solved going to the previous drivers relese. :wink:
BTW, I agree with Juffo-Wup, same problem with Pluto and the vol_moon.
Thank you.
Bye

Andrea :D

Posted: 08.12.2005, 17:19
by ANDREA
chris wrote:An NVIDIA driver bug is causing this problem. It doesn't happen with older drivers. --Chris

Hello Chris, I'm happy to inform you that the last two releases of nVidia drivers 81.95 and 81.85 give the same red planets problem, but the previous 78.01 is absolutely OK, everything works very well, and OpenGL 2.0 setting is the best one, a pleasure to look at. :D
May be next nVidia drivers release will solve this problem? 8O
Thanks a lot Chris, "You are the ONE"!!! :D
Bye

Andrea :D

Posted: 09.12.2005, 11:01
by Don. Edwards
Well thats good to know and explains a few things for me as well, Thanks for the info Andrea and Chris.

Don.

Posted: 09.12.2005, 21:23
by fsgregs
Maybe I should be posting a separate post regarding another Nvidia bug, but a few months ago, I bought a 6600 GT with 128 MB Video RAM. When I installed it on my system, Celestia refused to open. It tried to do so, but I got a white screen and nothing ... complete freeze. I had to reboot the computer. Everything was locked up. 100% reproducible!!

I installed several versions of drivers. All did the same thing. I thought the card was defective.

I found a fix to the problem by changing one setting in the GeForce 6600 GT controls. I found the problem to be in the default settings of the video card. One of the settings is "Ansiotropic Filtering - Application Controlled". When I changed it to "Ansiotropic Filtering - Off", Celestia launched fine.

One of my students also bought a 6600 GT and found the exact same problem. Changing the filtering command fixed his problem also.

It seems Celestia does not work well with the 6600 GT's default settings. If true, then this should be mentioned on the forum ... somewhere.

Regards

Frank

Posted: 09.12.2005, 23:29
by selden
Frank,

That's very strange.
I usually run Celestia with Anisotropic filtering at the default "application controlled" setting with my GF 6600GT and have not seen any lockups at all, except when I've introduced bugs in some of Celestia's initial catalogs.

System:

1GB, 3.4GHz P4-550; WinXP Pro SP2
128MB GF6600GT, ForceWare v81.85
Celestia 1.4.0pre6, pre7, etc.