Page 1 of 1

win10 1903 problems

Posted: Tue Oct 29, 2019 1:17 pm
by revelator
Hey peeps.

Well i got updated to 1903 and immediatly ran into a problem with opengl games like Doom3.
Setting gamma in game or modifying color profiles in windows no longer worked, and things looked a bit strange compared to the previous version.

Took me a while to hunt down what caused this and it turns out 1903 makes some assumptions that are plainly wrong with some monitors.
Go into device manager find your screen and change it to pnp screen (standard) and things will work again.

Hope this helps anyone else with this problem.

Re: win10 1903 problems

Posted: Fri Nov 01, 2019 9:42 am
by Barnes
heh) hardware gamma ramp broken now? you are not alone)

Re: win10 1903 problems

Posted: Mon Nov 04, 2019 1:25 pm
by revelator
Thank god... :oops:

Well atleast its an easy fix allthough it was hell figuring out what went wrong.

Re: win10 1903 problems

Posted: Tue Nov 05, 2019 5:44 pm
by Barnes
I’ve seen something like this before win10. Plus, when the application crashed, the gamma on the desktop broke. That's why I made a gamma ramp through a shader. I highly recommend doing the same.

Code: Select all

layout (bindless_sampler, location = U_TMU0) uniform sampler2DRect	u_ScreenTex;

layout(location = U_COLOR_PARAMS)	uniform vec4	u_control;			// x - brightens, y - contrast, z - saturation, w - gamma (1.0/gamma value)
layout(location = U_COLOR_VIBRANCE)	uniform vec3	u_rgbVibrance;		// pre-multipled values vibrance * rgb

vec3 BrightnesContrastSaturation(vec3 color, float brt, float con, float sat)
{
  // Increase or decrease theese values to adjust r, g and b color channels seperately
  const float AvgLumR = 0.5;
  const float AvgLumG = 0.5;
  const float AvgLumB = 0.5;
  
  const vec3 LumCoeff = vec3(0.2125, 0.7154, 0.0721);
  
	vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
	vec3 brtColor = color * brt;
	vec3 intensity = vec3(dot(brtColor, LumCoeff));
	vec3 satColor = mix(intensity, brtColor, sat);
	vec3 conColor = mix(AvgLumin, satColor, con);
	return conColor;
}

vec3 ColorVibrance(in vec3 color){

  float lum = dot(vec3(0.2125, 0.7154, 0.0721), color);

  float minColor	= min(color.r, min(color.g, color.b));
  float maxColor	= max(color.r, max(color.g, color.b));
  float mid			= maxColor - minColor;

  return color  = mix(vec3(lum), color.rgb, (1.0 + (u_rgbVibrance * (1.0 - (sign(u_rgbVibrance) * mid)))));
}

void main(void){

vec3 color = BrightnesContrastSaturation(texture2DRect(u_ScreenTex, gl_FragCoord.xy).rgb, u_control.x, u_control.y, u_control.z);
color = ColorVibrance(color);
fragData.rgb = pow(color, vec3(u_control.w));
fragData.a = 1.0;
}

Re: win10 1903 problems

Posted: Fri Nov 08, 2019 1:23 am
by revelator
Oh it is not gamma failing to reset, it is completely broken due to win 10 not correctly detecting the monitor.
It installs a driver for the monitor that breaks all gamma ramp and color space manipulations because the driver reports that the monitor is not capable of those (EDID fail).
I noticed while looking at my laptop with win 8.1 that the mobitor driver was named differently, so i changed the win10 version to the same generic driver and gamma worked again. But if i let win10 autodetect the monitor it reinstalls the broken driver so ouch :sad:

Re: win10 1903 problems

Posted: Sat Nov 09, 2019 10:45 pm
by r00k
iirc when i set pnp monitor, it forces a 60hz refresh rate. if i specifically choose the monitor/display port then i can use the full 144hz

i’ll have to double check. then again im not using 1903but an earier version 18xx

Re: win10 1903 problems

Posted: Sun Nov 10, 2019 3:30 pm
by revelator
earlier versions are to my knowledge not affected :smile:

If your monitor comes with a specific driver it should not be affected either,
my problem stems from using a HD TV as monitor, sadly there are no specific drivers for it so windows just installs a generic one. But it installs the wrong one on the 1903 version leading to the affore mentioned problems.