I'm having some problems with point sprite textures on the Intel HD Graphics card that comes with the Dell 790. The textures produce random garbage each frame. If I remove the Fragment shader, the texture appears fine, but upside down and the gl_PointSize and fading (fog) doesn't work. While trying to work with the removed frag shader, I've tried changing the PointParameter to use GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT but it has no effect on the upside down texture. I've tried multiple drivers, to include the latest. I can't figure out what Intel has implemented here... what works on every other system is not working - HELP. What am I doing wrong? Targeting OpenGL 2.1

Vertex Shader
Code :
#version 110
 
 uniform float pointSize;
 uniform float pointScale;
 uniform float gui;
 uniform float fogval;
 varying vec4 vFragColor;
 
 void main(void) {
     gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
     vec4 modv = vec4( gl_ModelViewMatrix * gl_Vertex );
     vFragColor = gl_Color;
     float fogscale = 1.5;
     if(fogval == 8000.0) {
         fogscale = 2.0;
     }
     if(gui == 0.0) {
         gl_PointSize = pointScale * pointSize/ -modv.z;
         float fog = fogval/ -modv.z;
         if (fog < fogscale) {
             vFragColor = smoothstep(0.0, fogscale, fog) * vFragColor;
         }
     } else {
         gl_PointSize = pointSize;
     }
     gl_FrontColor = vFragColor;
 }
Fragment Shader
Code :
#version 110
 
 uniform sampler2D tex;
 varying vec4 vFragColor;
 
 void main() {
     gl_FragColor = texture2D(tex,gl_TexCoord[0].st) * vFragColor;
 }