Bo3b's School For Shaderhackers
  53 / 88    
Hi Could someone have a look at this shader please? There are two which look very similar and cause a slight halo. The usual pattern doesn't seem to work [code]// The trusty pattern that has worked on 20+ of the 30 or so tweaked shaders in this game! //Apply a stereo correction to the temporary register that holds a copy of the // output position: float4 stereo = StereoParams.Load(0)*0; r1.x += stereo.x * (r1.w - stereo.y);[/code] Here is a one of the shaders I mentioned above: [code]//Cockpit slight halo cbuffer cb1 : register(b1) { float4 cb1[8]; } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); void main( float4 v0 : NORMAL0, float4 v1 : POSITION0, float4 v2 : POSITION6, float4 v3 : POSITION7, float4 v4 : TANGENT0, float4 v5 : TEXCOORD0, float4 v6 : TEXCOORD1, float4 v7 : TEXCOORD2, float4 v8 : TEXCOORD3, out float4 o0 : TEXCOORD0, out float3 o1 : TEXCOORD1, out float3 o2 : TEXCOORD2, out float4 o3 : TEXCOORD3, out float4 o4 : TEXCOORD4, out float4 o5 : SV_Position0) { float4 r0,r1,r2,r3,r4; uint4 bitmask, uiDest; float4 fDest; r0.xyz = v0.xyz * cb1[0].www + cb1[1].www; r1.xyz = v3.zxy * r0.yzx; r1.xyz = v3.yzx * r0.zxy + -r1.xyz; r0.w = dot(v3.xyz, r0.xyz); r2.xyzw = v3.xyzw + v3.xyzw; r1.w = v3.w * r2.w; r0.xyz = r1.www * r0.xyz + -r0.xyz; r0.xyz = r0.www * r2.xyz + r0.xyz; r0.xyz = r1.xyz * r2.www + r0.xyz; r1.xyz = v4.xyz * cb1[0].www + cb1[1].www; r0.w = dot(v3.xyz, r1.xyz); r3.xyz = r1.www * r1.xyz + -r1.xyz; r3.xyz = r0.www * r2.xyz + r3.xyz; r4.xyz = v3.zxy * r1.yzx; r1.xyz = v3.yzx * r1.zxy + -r4.xyz; r1.xyz = r1.xyz * r2.www + r3.xyz; r3.xyz = r1.yzx * r0.zxy; r3.xyz = r0.yzx * r1.zxy + -r3.xyz; o1.xyz = r0.xyz; o2.xyz = r1.xyz; r0.x = 0.000000000e+000 < v4.w; o0.xyz = r0.xxx ? r3.xyz : -r3.xyz; r0.xyz = v1.xyz * cb1[0].xyz + cb1[1].xyz; r1.xyz = r1.www * r0.xyz + -r0.xyz; r0.w = dot(v3.xyz, r0.xyz); r1.xyz = r0.www * r2.xyz + r1.xyz; r2.xyz = v3.zxy * r0.yzx; r0.xyz = v3.yzx * r0.zxy + -r2.xyz; r0.xyz = r0.xyz * r2.www + r1.xyz; r0.xyz = v2.xyz + r0.xyz; r0.w = v1.w; r1.x = dot(cb1[7].xyzw, r0.xyzw); o0.w = r1.x; o5.w = r1.x; o3.zw = v7.xy * cb1[3].xy + cb1[3].zw; r1.xy = v6.xy * cb1[2].xy + cb1[2].zw; o3.xy = r1.xy; o4.zw = r1.xy; o4.xy = float2(1.600000e+001,1.600000e+001) * v8.xy; o5.x = dot(cb1[4].xyzw, r0.xyzw); o5.y = dot(cb1[5].xyzw, r0.xyzw); o5.z = dot(cb1[6].xyzw, r0.xyzw); return; }[/code] The other shader looks very similar to this one. I notice they are missing a o5.w dot part. Is that an issue? Thank you very much in advance. :) Andy Thanks in advance
Hi

Could someone have a look at this shader please? There are two which look very similar and cause a slight halo. The usual pattern doesn't seem to work

// The trusty pattern that has worked on 20+ of the 30 or so tweaked shaders in this game!
//Apply a stereo correction to the temporary register that holds a copy of the
// output position:
float4 stereo = StereoParams.Load(0)*0;
r1.x += stereo.x * (r1.w - stereo.y);



Here is a one of the shaders I mentioned above:
//Cockpit slight halo

cbuffer cb1 : register(b1)
{
float4 cb1[8];
}


Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main(
float4 v0 : NORMAL0,
float4 v1 : POSITION0,
float4 v2 : POSITION6,
float4 v3 : POSITION7,
float4 v4 : TANGENT0,
float4 v5 : TEXCOORD0,
float4 v6 : TEXCOORD1,
float4 v7 : TEXCOORD2,
float4 v8 : TEXCOORD3,
out float4 o0 : TEXCOORD0,
out float3 o1 : TEXCOORD1,
out float3 o2 : TEXCOORD2,
out float4 o3 : TEXCOORD3,
out float4 o4 : TEXCOORD4,
out float4 o5 : SV_Position0)
{
float4 r0,r1,r2,r3,r4;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = v0.xyz * cb1[0].www + cb1[1].www;
r1.xyz = v3.zxy * r0.yzx;
r1.xyz = v3.yzx * r0.zxy + -r1.xyz;
r0.w = dot(v3.xyz, r0.xyz);
r2.xyzw = v3.xyzw + v3.xyzw;
r1.w = v3.w * r2.w;
r0.xyz = r1.www * r0.xyz + -r0.xyz;
r0.xyz = r0.www * r2.xyz + r0.xyz;
r0.xyz = r1.xyz * r2.www + r0.xyz;
r1.xyz = v4.xyz * cb1[0].www + cb1[1].www;
r0.w = dot(v3.xyz, r1.xyz);
r3.xyz = r1.www * r1.xyz + -r1.xyz;
r3.xyz = r0.www * r2.xyz + r3.xyz;
r4.xyz = v3.zxy * r1.yzx;
r1.xyz = v3.yzx * r1.zxy + -r4.xyz;
r1.xyz = r1.xyz * r2.www + r3.xyz;
r3.xyz = r1.yzx * r0.zxy;
r3.xyz = r0.yzx * r1.zxy + -r3.xyz;
o1.xyz = r0.xyz;
o2.xyz = r1.xyz;
r0.x = 0.000000000e+000 < v4.w;
o0.xyz = r0.xxx ? r3.xyz : -r3.xyz;
r0.xyz = v1.xyz * cb1[0].xyz + cb1[1].xyz;
r1.xyz = r1.www * r0.xyz + -r0.xyz;
r0.w = dot(v3.xyz, r0.xyz);
r1.xyz = r0.www * r2.xyz + r1.xyz;
r2.xyz = v3.zxy * r0.yzx;
r0.xyz = v3.yzx * r0.zxy + -r2.xyz;
r0.xyz = r0.xyz * r2.www + r1.xyz;
r0.xyz = v2.xyz + r0.xyz;
r0.w = v1.w;
r1.x = dot(cb1[7].xyzw, r0.xyzw);
o0.w = r1.x;
o5.w = r1.x;
o3.zw = v7.xy * cb1[3].xy + cb1[3].zw;
r1.xy = v6.xy * cb1[2].xy + cb1[2].zw;
o3.xy = r1.xy;
o4.zw = r1.xy;
o4.xy = float2(1.600000e+001,1.600000e+001) * v8.xy;
o5.x = dot(cb1[4].xyzw, r0.xyzw);
o5.y = dot(cb1[5].xyzw, r0.xyzw);
o5.z = dot(cb1[6].xyzw, r0.xyzw);
return;
}


The other shader looks very similar to this one. I notice they are missing a o5.w dot part. Is that an issue?

Thank you very much in advance. :)

Andy

Thanks in advance

Lord, grant me the serenity to accept the things I cannot change, the courage to change the things I can, and the wisdom to know the difference.-------------------Vitals: Windows 10 64bit, Ryzen 5 2600x, GTX 1070, 16GB, 3D Vision, CV1
Handy Driver DiscussionHelix Mod - community fixes Bo3b's Shaderhacker School - How to fix 3D in games3dsolutionsgaming.com - videos, reviews and 3D fixes

Posted 02/16/2016 10:56 AM   
[quote="andysonofbob"]Hi Could someone have a look at this shader please? There are two which look very similar and cause a slight halo. The usual pattern doesn't seem to work [code]// The trusty pattern that has worked on 20+ of the 30 or so tweaked shaders in this game! //Apply a stereo correction to the temporary register that holds a copy of the // output position: float4 stereo = StereoParams.Load(0)*0; r1.x += stereo.x * (r1.w - stereo.y);[/code] Here is a one of the shaders I mentioned above: [code]//Cockpit slight halo cbuffer cb1 : register(b1) { float4 cb1[8]; } Texture2D<float4> StereoParams : register(t125); Texture1D<float4> IniParams : register(t120); void main( float4 v0 : NORMAL0, float4 v1 : POSITION0, float4 v2 : POSITION6, float4 v3 : POSITION7, float4 v4 : TANGENT0, float4 v5 : TEXCOORD0, float4 v6 : TEXCOORD1, float4 v7 : TEXCOORD2, float4 v8 : TEXCOORD3, out float4 o0 : TEXCOORD0, out float3 o1 : TEXCOORD1, out float3 o2 : TEXCOORD2, out float4 o3 : TEXCOORD3, out float4 o4 : TEXCOORD4, out float4 o5 : SV_Position0) { float4 r0,r1,r2,r3,r4; uint4 bitmask, uiDest; float4 fDest; r0.xyz = v0.xyz * cb1[0].www + cb1[1].www; r1.xyz = v3.zxy * r0.yzx; r1.xyz = v3.yzx * r0.zxy + -r1.xyz; r0.w = dot(v3.xyz, r0.xyz); r2.xyzw = v3.xyzw + v3.xyzw; r1.w = v3.w * r2.w; r0.xyz = r1.www * r0.xyz + -r0.xyz; r0.xyz = r0.www * r2.xyz + r0.xyz; r0.xyz = r1.xyz * r2.www + r0.xyz; r1.xyz = v4.xyz * cb1[0].www + cb1[1].www; r0.w = dot(v3.xyz, r1.xyz); r3.xyz = r1.www * r1.xyz + -r1.xyz; r3.xyz = r0.www * r2.xyz + r3.xyz; r4.xyz = v3.zxy * r1.yzx; r1.xyz = v3.yzx * r1.zxy + -r4.xyz; r1.xyz = r1.xyz * r2.www + r3.xyz; r3.xyz = r1.yzx * r0.zxy; r3.xyz = r0.yzx * r1.zxy + -r3.xyz; o1.xyz = r0.xyz; o2.xyz = r1.xyz; r0.x = 0.000000000e+000 < v4.w; o0.xyz = r0.xxx ? r3.xyz : -r3.xyz; r0.xyz = v1.xyz * cb1[0].xyz + cb1[1].xyz; r1.xyz = r1.www * r0.xyz + -r0.xyz; r0.w = dot(v3.xyz, r0.xyz); r1.xyz = r0.www * r2.xyz + r1.xyz; r2.xyz = v3.zxy * r0.yzx; r0.xyz = v3.yzx * r0.zxy + -r2.xyz; r0.xyz = r0.xyz * r2.www + r1.xyz; r0.xyz = v2.xyz + r0.xyz; r0.w = v1.w; r1.x = dot(cb1[7].xyzw, r0.xyzw); o0.w = r1.x; o5.w = r1.x; o3.zw = v7.xy * cb1[3].xy + cb1[3].zw; r1.xy = v6.xy * cb1[2].xy + cb1[2].zw; o3.xy = r1.xy; o4.zw = r1.xy; o4.xy = float2(1.600000e+001,1.600000e+001) * v8.xy; o5.x = dot(cb1[4].xyzw, r0.xyzw); o5.y = dot(cb1[5].xyzw, r0.xyzw); o5.z = dot(cb1[6].xyzw, r0.xyzw); return; }[/code] The other shader looks very similar to this one. I notice they are missing a o5.w dot part. Is that an issue?[/quote] I don't think this is the shader you're looking for. Just wondering, is the halo still there when you press F9 (disable the fix)? Also, can you post the pixel shader for this?
andysonofbob said:Hi

Could someone have a look at this shader please? There are two which look very similar and cause a slight halo. The usual pattern doesn't seem to work

// The trusty pattern that has worked on 20+ of the 30 or so tweaked shaders in this game!
//Apply a stereo correction to the temporary register that holds a copy of the
// output position:
float4 stereo = StereoParams.Load(0)*0;
r1.x += stereo.x * (r1.w - stereo.y);



Here is a one of the shaders I mentioned above:
//Cockpit slight halo

cbuffer cb1 : register(b1)
{
float4 cb1[8];
}


Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main(
float4 v0 : NORMAL0,
float4 v1 : POSITION0,
float4 v2 : POSITION6,
float4 v3 : POSITION7,
float4 v4 : TANGENT0,
float4 v5 : TEXCOORD0,
float4 v6 : TEXCOORD1,
float4 v7 : TEXCOORD2,
float4 v8 : TEXCOORD3,
out float4 o0 : TEXCOORD0,
out float3 o1 : TEXCOORD1,
out float3 o2 : TEXCOORD2,
out float4 o3 : TEXCOORD3,
out float4 o4 : TEXCOORD4,
out float4 o5 : SV_Position0)
{
float4 r0,r1,r2,r3,r4;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = v0.xyz * cb1[0].www + cb1[1].www;
r1.xyz = v3.zxy * r0.yzx;
r1.xyz = v3.yzx * r0.zxy + -r1.xyz;
r0.w = dot(v3.xyz, r0.xyz);
r2.xyzw = v3.xyzw + v3.xyzw;
r1.w = v3.w * r2.w;
r0.xyz = r1.www * r0.xyz + -r0.xyz;
r0.xyz = r0.www * r2.xyz + r0.xyz;
r0.xyz = r1.xyz * r2.www + r0.xyz;
r1.xyz = v4.xyz * cb1[0].www + cb1[1].www;
r0.w = dot(v3.xyz, r1.xyz);
r3.xyz = r1.www * r1.xyz + -r1.xyz;
r3.xyz = r0.www * r2.xyz + r3.xyz;
r4.xyz = v3.zxy * r1.yzx;
r1.xyz = v3.yzx * r1.zxy + -r4.xyz;
r1.xyz = r1.xyz * r2.www + r3.xyz;
r3.xyz = r1.yzx * r0.zxy;
r3.xyz = r0.yzx * r1.zxy + -r3.xyz;
o1.xyz = r0.xyz;
o2.xyz = r1.xyz;
r0.x = 0.000000000e+000 < v4.w;
o0.xyz = r0.xxx ? r3.xyz : -r3.xyz;
r0.xyz = v1.xyz * cb1[0].xyz + cb1[1].xyz;
r1.xyz = r1.www * r0.xyz + -r0.xyz;
r0.w = dot(v3.xyz, r0.xyz);
r1.xyz = r0.www * r2.xyz + r1.xyz;
r2.xyz = v3.zxy * r0.yzx;
r0.xyz = v3.yzx * r0.zxy + -r2.xyz;
r0.xyz = r0.xyz * r2.www + r1.xyz;
r0.xyz = v2.xyz + r0.xyz;
r0.w = v1.w;
r1.x = dot(cb1[7].xyzw, r0.xyzw);
o0.w = r1.x;
o5.w = r1.x;
o3.zw = v7.xy * cb1[3].xy + cb1[3].zw;
r1.xy = v6.xy * cb1[2].xy + cb1[2].zw;
o3.xy = r1.xy;
o4.zw = r1.xy;
o4.xy = float2(1.600000e+001,1.600000e+001) * v8.xy;
o5.x = dot(cb1[4].xyzw, r0.xyzw);
o5.y = dot(cb1[5].xyzw, r0.xyzw);
o5.z = dot(cb1[6].xyzw, r0.xyzw);
return;
}


The other shader looks very similar to this one. I notice they are missing a o5.w dot part. Is that an issue?


I don't think this is the shader you're looking for. Just wondering, is the halo still there when you press F9 (disable the fix)?

Also, can you post the pixel shader for this?

Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35

Posted 02/16/2016 02:58 PM   
Hi all, my Risen 2 fix is now almost complete, the only thing remaining is specular highlights which seems to works completely different. In this game there are two types of specular highlights, within point lights and without any specific light source. My problem is, that there is not just something that has to be moved to the correct position. The highlights are just different on both eyes. Modifying some registers does not move them, it only changes the intensity and usually makes the issues larger. I found some textures that seems to be responsible for that issues. If they are output directly to oC0, specular highlights and the 3D issues are cleary visible in green (see pictures). Within point lights [img]https://forums.geforce.com/cmd/default/download-comment-attachment/68283/[/img] Global lighting (clearly visible on the roof) [img]https://forums.geforce.com/cmd/default/download-comment-attachment/68284/[/img] Any ideas what to do? Is specular fixed differently? Below are the most probable shader candidates - I've no idea if these are the correct ones. If helpful, I can post a list of the others. PS92EAC913 (already contains fix for point lights) [code] // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // Parameters: // // float3 CamDir; // sampler2D DepthSampler; // sampler2D DiffuseLookupSampler; // float2 NearFar; // sampler2D NormalSampler; // float4 ScreenToTexCoord; // sampler2D ShadowMaskSampler; // sampler2D SpecularLookupSampler; // // // Registers: // // Name Reg Size // --------------------- ----- ---- // CamDir c0 1 // NearFar c1 1 // ScreenToTexCoord c2 1 // DepthSampler s0 1 // NormalSampler s1 1 // ShadowMaskSampler s2 1 // DiffuseLookupSampler s3 1 // SpecularLookupSampler s4 1 // // // Default values: // // CamDir // c0 = { 0, 0, 0, 0 }; // // NearFar // c1 = { 0, 0, 0, 0 }; // // ScreenToTexCoord // c2 = { 0, 0, 0, 0 }; // // c220 = InverseViewProjection - from parent VS // Lights - torches on walls, with specular ps_3_0 //def c200, 1, 230000, 0.0625, 0.5 def c200, 1, 1, 0.0625, 0.5 def c201, -0.3, -100, 0, 0 // + moves left def c202, 0.1, 1, 10, 100 def c210, 0, 1, 0, 1 // green for test def c211, 0.5, 1, 0.5, 1 def c212, 0.5, 0.5, 0.5, 0.5 def c213, 0.5, 0.5, 1, 1 def c3, 0.5, 0.99609375, 0.124511719, 0.000244140625 def c4, 2, -1, 3, 1 dcl_texcoord v0 // color dcl_texcoord1 v1.xyz dcl_texcoord2_pp v2 dcl vPos.xy dcl_2d s0 dcl_2d s1 dcl_2d s2 dcl_2d s3 dcl_2d s4 dcl_2d s13 mad r0.xy, vPos, c2, c2.zwzw // Screen position // (using vPos means no halo issues to worry about in the VS) texld r1, r0, s0 // Sample screen depth to r1 mul r0.z, r1.x, c1.y // Scaling depth buffer mov r28.x, r0.z // Store scaled depth nrm_pp r1.xyz, v1 dp3 r0.w, c0, r1 rcp r0.w, r0.w mul r0.z, r0.w, r0.z // Scaling depth buffer //mad_pp r2.xyz, r1, -r0.z, v2 // Multiplying 3D coordinate by depth value and adding offset // Split that instruction in two: mul r20.xyz, r1, -r0.z // r20 is in world coordiantes // Pixel shader correction formula texld r29, c200.z, s13 mul r29.w, r28.x, r29.x // depth * separation // Transform correction from screen to world coordinates mul r30.x, r29.w, c220.x mul r30.y, r29.w, c221.x mul r30.z, r29.w, c222.x mul r30.w, r29.w, c223.x // Apply correction add r2.xyz, r20.xyz, r30.xyz // 2nd half of split instruction: add r2.xyz, r2, v2 dp3_pp r0.z, r2, r2 rsq_pp r0.z, r0.z mad_pp r3.xyz, r2, r0.z, -r1 mul_pp r2.xyz, r0.z, r2 rcp_pp r0.z, r0.z mul_sat_pp r0.z, r0.z, v2.w nrm_pp r4.xyz, r3 //add r0.w, c202.x, r0.w // changing r0: halos texld_pp r3, r0, s1 // sample normals, normals are in world coordinates, matching to surfaces // disable makes it bright, problem persists //mov oC0, r3 texld_pp r5, r0, s2 // sample light, disabling disables light, only xy used //mov oC0, r5 // constant brightness texture mad_pp r0.xyw, r3.xyzz, c4.x, c4.y // multiply normals with 2, subtract 1 mov_pp r3.y, r3.w nrm_pp r6.xyz, r0.xyww dp3_sat_pp r4.z, r4, r6 dp3_pp r0.y, r2, -r1 dp3_pp r0.x, r2, r6 dp3_pp r1.w, -r1, r6 mad_pp r4.xy, r0, c3.x, c3.x mul_pp r0.y, r5.y, c3.y // r5: sampled light, y (green) component used mad r2.xyz, r4, c3.z, r0.y // Disabled specular below, high visual quality loss add_pp r1.xyz, r2, c3.w texld_pp r2, r1.ywzw, s3 // diffuse sampler, darker, only w used //mov oC0, r2 // Small issue in this! mul_pp r0.x, r0.x, r2.w texld_pp r2, r1.xwzw, s3 //mov oC0, r2 // Small issue in this! //add r1.x, r1.x, c201.x // -w: more green; x, +w: less green // Modifying r1 only changes intensity, not position texld_pp r4, r1.xwzw, s4 // specular sampler, used below //mov oC0, r4 // big issue in this, clearly visible, only y used mov_pp r3.x, r1.z //add r3.x, r3.x, -c202.x // seems to be a good position for another fix // +y: up, x: LR texld_pp r1, r3, s4 // disabling makes LR differences stronger //mov oC0, r1 // Also some issues in this! mul_pp r1.w, r4.y, r1.x // Multiply with specular (r4.y) max_pp r1.xyz, r0.x, r2 // r2: broken diff sampler from above mul r1, r1, v0 // Multiply with color mul_pp r0.x, r0.z, r0.z mul_pp r0.y, r0.x, c4.z dp2add_pp r0.x, r0.x, r0.z, -r0.y add_pp r0.x, r0.x, c4.w mul_pp r0.x, r5.x, r0.x mul_pp oC0, r0.x, r1 // approximately 50 instruction slots used (7 texture, 43 arithmetic) [/code] VS83BFAF1A [code] // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // Parameters: // // float2 StereoSettings; // float2 TextureSize; // // // Registers: // // Name Reg Size // -------------- ----- ---- // StereoSettings c0 1 // TextureSize c1 1 // // // Default values: // // StereoSettings // c0 = { 0, 0, 0, 0 }; // // TextureSize // c1 = { 0, 0, 0, 0 }; // // preshader // rcp r0.x, c1.x // rcp r0.y, c1.y // mul c4.xy, (0.5, 0.5), r0.xy // mov c5.x, c0.y // approximately 4 instructions used // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // Parameters: // // float3 EyePos; // float4x4 InvViewProj; // float2 StereoSettings; // // // Registers: // // Name Reg Size // -------------- ----- ---- // InvViewProj c0 4 // StereoSettings c6 1 // EyePos c7 1 // // // Default values: // // InvViewProj // c0 = { 0, 0, 0, 0 }; // c1 = { 0, 0, 0, 0 }; // c2 = { 0, 0, 0, 0 }; // c3 = { 0, 0, 0, 0 }; // // StereoSettings // c6 = { 0, 0, 0, 0 }; // // EyePos // c7 = { 0, 0, 0, 0 }; // // Specular highlights without a specific light source. // Disabling o0 disables lighting completely. vs_3_0 // adjust highlight intensity with c200 def c200, -1, -1, 1, 0 // x: objects, y: world, z: walls ? // [-1 -1 1 0] disables specular def c8, -1, 1, 0, 0 def c9, 2, -2, 0, 0 dcl_position v0 dcl_texcoord v1 dcl_position o0 dcl_texcoord o1.xy dcl_texcoord1 o2.xyz mul o0.xyz, c6.y, v0 // disable o0: no light add o1.xy, c4, v1 // disable o1: no light mov r0.xyz, c9 mad r0, v1.xyxx, r0.xyzz, c8.xyyy dp4 r1.x, r0, c3 rcp r1.x, r1.x dp4 r2.x, r0, c0 dp4 r2.y, r0, c1 dp4 r2.z, r0, c2 mad o2.xyz, r2, r1.x, -c7 // disable: highlights very bright, all issues visible //mov o2.xyz, c200 // Disable specular highlights: // Visual quality loss: looks flat mov o0.w, c5.x // approximately 11 instruction slots used [/code] PSEACABB08 [code] // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // Parameters: // // sampler2D DiffuseLookupSampler; // float4 LightColor; // float3 LightDir; // sampler2D NormalSampler; // sampler2D ShadowMaskSampler; // sampler2D SpecularLookupSampler; // // // Registers: // // Name Reg Size // --------------------- ----- ---- // LightDir c0 1 // LightColor c1 1 // NormalSampler s0 1 // ShadowMaskSampler s1 1 // DiffuseLookupSampler s2 1 // SpecularLookupSampler s3 1 // // // Default values: // // LightDir // c0 = { 0, 0, 0, 0 }; // // LightColor // c1 = { 0, 0, 0, 0 }; // // all specular effects, cloth, rock, roof, leafs, ... // Parent shader: VS 83BFAF1A ps_3_0 def c200, 0, 1, 0.5, 1 def c2, 0.124511719, 0.000244140625, 0, 0 def c3, 2, -1, 0.5, 0.99609375 dcl_texcoord v0.xy dcl_texcoord1 v1.xyz dcl_2d s0 dcl_2d s1 dcl_2d s2 dcl_2d s3 dp3 r0.x, -v1, -v1 rsq r0.x, r0.x mad r0.yzw, -v1.xxyz, r0.x, c0.xxyz // multiply 1/length with v1, add light dir mul_pp r1.xyz, r0.x, -v1 // -v1 / length(v1) <=> nrm ? nrm r2.xyz, r0.yzww // Problem above ? //mov r30, v0.xy //add r30.y, r30.y, c200.x // creates halos in x/y //texld_pp r0, r30, s0 //mov oC0, r0 // flickering when looking around texld_pp r0, v0, s0 // disable: everything shadowed, no 3D issues //mov r0, c200.w // adjusts intensity a bit -> fix v0 ? //mov oC0, r0 // const green? mad_pp r0.xyz, r0, c3.x, c3.y mov_pp r3.y, r0.w nrm_pp r4.xyz, r0 dp3_sat_pp r0.z, r2, r4 dp3_pp r2.y, c0, r1 dp3_pp r1.w, r1, r4 dp3 r0.w, c0, r4 //mov r29, v0.xy //texldl r30, c200.z, s13 //mad r29.x, r30.x, c200.x, r29.x // fix here causes halo //texld_pp r4, r29, s1 // s1: shadow sampler texld_pp r4, v0, s1 //mov oC0, r4 // const color, red mul_pp r2.x, r0.w, r4.w mad_pp r0.xy, r2, c3.z, c3.z mul_pp r0.w, r4.y, c3.w mad r0.xyz, r0, c2.x, r0.w add_pp r1.xyz, r0, c2.y texld_pp r0, r1.ywzw, s2 //mov oC0, r0 // Some small issues! mul_pp r0.x, r2.x, r0.w texld_pp r2, r1.xwzw, s2 // shadows get greener, non shadows redder //mov oC0, r2 // Also some issues // Removing specular samplers improve it, but no complete fix. texld_pp r5, r1.xwzw, s3 // a bit reflections ? //mov oC0, r5 // Issues cleary visible in green mov_pp r3.x, r1.z texld_pp r1, r3, s3 // a bit reflections ? //mov oC0, r1 // Issues cleary visible in green mul_pp r1.w, r5.y, r1.x // r5.y is specular max_pp r1.xyz, r0.x, r2 mul_pp r0, r1, c1 mul_pp oC0, r4.xxxw, r0 // approximately 33 instruction slots used (6 texture, 27 arithmetic) [/code] -------------------------------------------------------- [quote="andysonofbob"] [code]// The trusty pattern that has worked on 20+ of the 30 or so tweaked shaders in this game! //Apply a stereo correction to the temporary register that holds a copy of the // output position: float4 stereo = StereoParams.Load(0)*0; r1.x += stereo.x * (r1.w - stereo.y);[/code] [/quote] This is a very common pattern for halo issues many games. The output position gets stereorized by the driver, the copies not, so you have to do that manually. [quote="andysonofbob"] The other shader looks very similar to this one. I notice they are missing a o5.w dot part. Is that an issue? [/quote] In line 65/66, o0.w and o5.w are set to r1.x, which is a dot product of r0 and cb1[7], so this shouldn't be an issue. Can you please post a fixed shader?
Hi all,

my Risen 2 fix is now almost complete, the only thing remaining is specular highlights which seems to works completely different. In this game there are two types of specular highlights, within point lights and without any specific light source.

My problem is, that there is not just something that has to be moved to the correct position. The highlights are just different on both eyes. Modifying some registers does not move them, it only changes the intensity and usually makes the issues larger.

I found some textures that seems to be responsible for that issues. If they are output directly to oC0, specular highlights and the 3D issues are cleary visible in green (see pictures).

Within point lights
Image

Global lighting (clearly visible on the roof)
Image

Any ideas what to do? Is specular fixed differently?


Below are the most probable shader candidates - I've no idea if these are the correct ones. If helpful, I can post a list of the others.

PS92EAC913 (already contains fix for point lights)
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
// float3 CamDir;
// sampler2D DepthSampler;
// sampler2D DiffuseLookupSampler;
// float2 NearFar;
// sampler2D NormalSampler;
// float4 ScreenToTexCoord;
// sampler2D ShadowMaskSampler;
// sampler2D SpecularLookupSampler;
//
//
// Registers:
//
// Name Reg Size
// --------------------- ----- ----
// CamDir c0 1
// NearFar c1 1
// ScreenToTexCoord c2 1
// DepthSampler s0 1
// NormalSampler s1 1
// ShadowMaskSampler s2 1
// DiffuseLookupSampler s3 1
// SpecularLookupSampler s4 1
//
//
// Default values:
//
// CamDir
// c0 = { 0, 0, 0, 0 };
//
// NearFar
// c1 = { 0, 0, 0, 0 };
//
// ScreenToTexCoord
// c2 = { 0, 0, 0, 0 };
//

// c220 = InverseViewProjection - from parent VS

// Lights - torches on walls, with specular

ps_3_0
//def c200, 1, 230000, 0.0625, 0.5
def c200, 1, 1, 0.0625, 0.5
def c201, -0.3, -100, 0, 0 // + moves left
def c202, 0.1, 1, 10, 100
def c210, 0, 1, 0, 1 // green for test
def c211, 0.5, 1, 0.5, 1
def c212, 0.5, 0.5, 0.5, 0.5
def c213, 0.5, 0.5, 1, 1
def c3, 0.5, 0.99609375, 0.124511719, 0.000244140625
def c4, 2, -1, 3, 1
dcl_texcoord v0 // color
dcl_texcoord1 v1.xyz
dcl_texcoord2_pp v2
dcl vPos.xy
dcl_2d s0
dcl_2d s1
dcl_2d s2
dcl_2d s3
dcl_2d s4
dcl_2d s13

mad r0.xy, vPos, c2, c2.zwzw // Screen position
// (using vPos means no halo issues to worry about in the VS)
texld r1, r0, s0 // Sample screen depth to r1
mul r0.z, r1.x, c1.y // Scaling depth buffer
mov r28.x, r0.z // Store scaled depth
nrm_pp r1.xyz, v1
dp3 r0.w, c0, r1
rcp r0.w, r0.w
mul r0.z, r0.w, r0.z // Scaling depth buffer

//mad_pp r2.xyz, r1, -r0.z, v2 // Multiplying 3D coordinate by depth value and adding offset
// Split that instruction in two:
mul r20.xyz, r1, -r0.z // r20 is in world coordiantes

// Pixel shader correction formula
texld r29, c200.z, s13
mul r29.w, r28.x, r29.x // depth * separation

// Transform correction from screen to world coordinates
mul r30.x, r29.w, c220.x
mul r30.y, r29.w, c221.x
mul r30.z, r29.w, c222.x
mul r30.w, r29.w, c223.x

// Apply correction
add r2.xyz, r20.xyz, r30.xyz
// 2nd half of split instruction:
add r2.xyz, r2, v2

dp3_pp r0.z, r2, r2
rsq_pp r0.z, r0.z
mad_pp r3.xyz, r2, r0.z, -r1
mul_pp r2.xyz, r0.z, r2
rcp_pp r0.z, r0.z
mul_sat_pp r0.z, r0.z, v2.w
nrm_pp r4.xyz, r3

//add r0.w, c202.x, r0.w // changing r0: halos

texld_pp r3, r0, s1 // sample normals, normals are in world coordinates, matching to surfaces
// disable makes it bright, problem persists
//mov oC0, r3
texld_pp r5, r0, s2 // sample light, disabling disables light, only xy used
//mov oC0, r5 // constant brightness texture
mad_pp r0.xyw, r3.xyzz, c4.x, c4.y // multiply normals with 2, subtract 1

mov_pp r3.y, r3.w
nrm_pp r6.xyz, r0.xyww
dp3_sat_pp r4.z, r4, r6
dp3_pp r0.y, r2, -r1
dp3_pp r0.x, r2, r6
dp3_pp r1.w, -r1, r6
mad_pp r4.xy, r0, c3.x, c3.x
mul_pp r0.y, r5.y, c3.y // r5: sampled light, y (green) component used
mad r2.xyz, r4, c3.z, r0.y

// Disabled specular below, high visual quality loss

add_pp r1.xyz, r2, c3.w
texld_pp r2, r1.ywzw, s3 // diffuse sampler, darker, only w used
//mov oC0, r2 // Small issue in this!
mul_pp r0.x, r0.x, r2.w
texld_pp r2, r1.xwzw, s3
//mov oC0, r2 // Small issue in this!
//add r1.x, r1.x, c201.x // -w: more green; x, +w: less green
// Modifying r1 only changes intensity, not position
texld_pp r4, r1.xwzw, s4 // specular sampler, used below
//mov oC0, r4 // big issue in this, clearly visible, only y used
mov_pp r3.x, r1.z

//add r3.x, r3.x, -c202.x // seems to be a good position for another fix
// +y: up, x: LR

texld_pp r1, r3, s4 // disabling makes LR differences stronger
//mov oC0, r1 // Also some issues in this!
mul_pp r1.w, r4.y, r1.x // Multiply with specular (r4.y)
max_pp r1.xyz, r0.x, r2 // r2: broken diff sampler from above

mul r1, r1, v0 // Multiply with color
mul_pp r0.x, r0.z, r0.z
mul_pp r0.y, r0.x, c4.z
dp2add_pp r0.x, r0.x, r0.z, -r0.y
add_pp r0.x, r0.x, c4.w
mul_pp r0.x, r5.x, r0.x
mul_pp oC0, r0.x, r1

// approximately 50 instruction slots used (7 texture, 43 arithmetic)


VS83BFAF1A
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
// float2 StereoSettings;
// float2 TextureSize;
//
//
// Registers:
//
// Name Reg Size
// -------------- ----- ----
// StereoSettings c0 1
// TextureSize c1 1
//
//
// Default values:
//
// StereoSettings
// c0 = { 0, 0, 0, 0 };
//
// TextureSize
// c1 = { 0, 0, 0, 0 };
//

// preshader
// rcp r0.x, c1.x
// rcp r0.y, c1.y
// mul c4.xy, (0.5, 0.5), r0.xy
// mov c5.x, c0.y

// approximately 4 instructions used
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
// float3 EyePos;
// float4x4 InvViewProj;
// float2 StereoSettings;
//
//
// Registers:
//
// Name Reg Size
// -------------- ----- ----
// InvViewProj c0 4
// StereoSettings c6 1
// EyePos c7 1
//
//
// Default values:
//
// InvViewProj
// c0 = { 0, 0, 0, 0 };
// c1 = { 0, 0, 0, 0 };
// c2 = { 0, 0, 0, 0 };
// c3 = { 0, 0, 0, 0 };
//
// StereoSettings
// c6 = { 0, 0, 0, 0 };
//
// EyePos
// c7 = { 0, 0, 0, 0 };
//

// Specular highlights without a specific light source.
// Disabling o0 disables lighting completely.

vs_3_0
// adjust highlight intensity with c200
def c200, -1, -1, 1, 0 // x: objects, y: world, z: walls ?
// [-1 -1 1 0] disables specular
def c8, -1, 1, 0, 0
def c9, 2, -2, 0, 0
dcl_position v0
dcl_texcoord v1
dcl_position o0
dcl_texcoord o1.xy
dcl_texcoord1 o2.xyz

mul o0.xyz, c6.y, v0 // disable o0: no light
add o1.xy, c4, v1 // disable o1: no light

mov r0.xyz, c9
mad r0, v1.xyxx, r0.xyzz, c8.xyyy

dp4 r1.x, r0, c3
rcp r1.x, r1.x
dp4 r2.x, r0, c0
dp4 r2.y, r0, c1
dp4 r2.z, r0, c2
mad o2.xyz, r2, r1.x, -c7 // disable: highlights very bright, all issues visible
//mov o2.xyz, c200 // Disable specular highlights:
// Visual quality loss: looks flat
mov o0.w, c5.x

// approximately 11 instruction slots used


PSEACABB08
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
// sampler2D DiffuseLookupSampler;
// float4 LightColor;
// float3 LightDir;
// sampler2D NormalSampler;
// sampler2D ShadowMaskSampler;
// sampler2D SpecularLookupSampler;
//
//
// Registers:
//
// Name Reg Size
// --------------------- ----- ----
// LightDir c0 1
// LightColor c1 1
// NormalSampler s0 1
// ShadowMaskSampler s1 1
// DiffuseLookupSampler s2 1
// SpecularLookupSampler s3 1
//
//
// Default values:
//
// LightDir
// c0 = { 0, 0, 0, 0 };
//
// LightColor
// c1 = { 0, 0, 0, 0 };
//

// all specular effects, cloth, rock, roof, leafs, ...
// Parent shader: VS 83BFAF1A

ps_3_0
def c200, 0, 1, 0.5, 1
def c2, 0.124511719, 0.000244140625, 0, 0
def c3, 2, -1, 0.5, 0.99609375
dcl_texcoord v0.xy
dcl_texcoord1 v1.xyz
dcl_2d s0
dcl_2d s1
dcl_2d s2
dcl_2d s3
dp3 r0.x, -v1, -v1
rsq r0.x, r0.x
mad r0.yzw, -v1.xxyz, r0.x, c0.xxyz // multiply 1/length with v1, add light dir
mul_pp r1.xyz, r0.x, -v1 // -v1 / length(v1) <=> nrm ?
nrm r2.xyz, r0.yzww

// Problem above ?

//mov r30, v0.xy
//add r30.y, r30.y, c200.x // creates halos in x/y
//texld_pp r0, r30, s0
//mov oC0, r0 // flickering when looking around

texld_pp r0, v0, s0 // disable: everything shadowed, no 3D issues
//mov r0, c200.w // adjusts intensity a bit -> fix v0 ?
//mov oC0, r0 // const green?
mad_pp r0.xyz, r0, c3.x, c3.y
mov_pp r3.y, r0.w
nrm_pp r4.xyz, r0
dp3_sat_pp r0.z, r2, r4
dp3_pp r2.y, c0, r1
dp3_pp r1.w, r1, r4
dp3 r0.w, c0, r4

//mov r29, v0.xy
//texldl r30, c200.z, s13
//mad r29.x, r30.x, c200.x, r29.x // fix here causes halo
//texld_pp r4, r29, s1 // s1: shadow sampler

texld_pp r4, v0, s1
//mov oC0, r4 // const color, red
mul_pp r2.x, r0.w, r4.w
mad_pp r0.xy, r2, c3.z, c3.z
mul_pp r0.w, r4.y, c3.w
mad r0.xyz, r0, c2.x, r0.w
add_pp r1.xyz, r0, c2.y
texld_pp r0, r1.ywzw, s2
//mov oC0, r0 // Some small issues!
mul_pp r0.x, r2.x, r0.w
texld_pp r2, r1.xwzw, s2 // shadows get greener, non shadows redder
//mov oC0, r2 // Also some issues

// Removing specular samplers improve it, but no complete fix.

texld_pp r5, r1.xwzw, s3 // a bit reflections ?
//mov oC0, r5 // Issues cleary visible in green
mov_pp r3.x, r1.z
texld_pp r1, r3, s3 // a bit reflections ?
//mov oC0, r1 // Issues cleary visible in green

mul_pp r1.w, r5.y, r1.x // r5.y is specular
max_pp r1.xyz, r0.x, r2
mul_pp r0, r1, c1
mul_pp oC0, r4.xxxw, r0

// approximately 33 instruction slots used (6 texture, 27 arithmetic)


--------------------------------------------------------


andysonofbob said:
// The trusty pattern that has worked on 20+ of the 30 or so tweaked shaders in this game!
//Apply a stereo correction to the temporary register that holds a copy of the
// output position:
float4 stereo = StereoParams.Load(0)*0;
r1.x += stereo.x * (r1.w - stereo.y);


This is a very common pattern for halo issues many games. The output position gets stereorized by the driver, the copies not, so you have to do that manually.

andysonofbob said:
The other shader looks very similar to this one. I notice they are missing a o5.w dot part. Is that an issue?

In line 65/66, o0.w and o5.w are set to r1.x, which is a dot product of r0 and cb1[7], so this shouldn't be an issue. Can you please post a fixed shader?
Hi guys, Sorry for the STUPID question but I can't remember how to do this.... In a shader I have these definitions: [code] // Buffer Definitions: // // cbuffer SceneBuffer // { // // row_major float4x4 View; // Offset: 0 Size: 64 [unused] // row_major float4x4 ScreenMatrix; // Offset: 64 Size: 64 [unused] // float2 DepthExportScale; // Offset: 128 Size: 8 [unused] // float2 __padding0; // Offset: 136 Size: 8 [unused] // float4 FogParams; // Offset: 144 Size: 16 [unused] // float3 __CameraPosition; // Offset: 160 Size: 12 [unused] // float __padding12; // Offset: 172 Size: 4 [unused] // float3 CameraDirection; // Offset: 176 Size: 12 [unused] // float __padding9; // Offset: 188 Size: 4 [unused] // float3 DepthFactors; // Offset: 192 Size: 12 [unused] // float __padding10; // Offset: 204 Size: 4 [unused] // float3 ShadowDepthBiasAndLightType;// Offset: 208 Size: 12 [unused] // float __padding11; // Offset: 220 Size: 4 [unused] // float4 SubframeViewport; // Offset: 224 Size: 16 [unused] // row_major float3x4 DepthToWorld; // Offset: 240 Size: 48 [unused] // float4 DepthToView; // Offset: 288 Size: 16 // float4 OneOverDepthToView; // Offset: 304 Size: 16 [unused] // float4 DepthToW; // Offset: 320 Size: 16 // float4 ClipPlane; // Offset: 336 Size: 16 [unused] // float2 ViewportDepthScaleOffset; // Offset: 352 Size: 8 [unused] // float2 __padding1; // Offset: 360 Size: 8 [unused] // float2 ColorDOFDepthScaleOffset; // Offset: 368 Size: 8 [unused] // float2 __padding2; // Offset: 376 Size: 8 [unused] // float4 TimeVector; // Offset: 384 Size: 16 [unused] // float4 FogParams2; // Offset: 400 Size: 16 [unused] // float4 FogParams3; // Offset: 416 Size: 16 [unused] // float3 GlobalAmbient; // Offset: 432 Size: 12 [unused] // float __padding8; // Offset: 444 Size: 4 [unused] // float4 GlobalParams[16]; // Offset: 448 Size: 256 [unused] // float4 ViewToFogH; // Offset: 704 Size: 16 [unused] // float4 ScreenExtents; // Offset: 720 Size: 16 // float2 ScreenResolution; // Offset: 736 Size: 8 [unused] // float2 __padding3; // Offset: 744 Size: 8 [unused] // float4 PSSMToMap1Lin; // Offset: 752 Size: 16 [unused] // float4 PSSMToMap1Const; // Offset: 768 Size: 16 [unused] // float4 PSSMToMap2Lin; // Offset: 784 Size: 16 [unused] // float4 PSSMToMap2Const; // Offset: 800 Size: 16 [unused] // float4 PSSMToMap3Lin; // Offset: 816 Size: 16 [unused] // float4 PSSMToMap3Const; // Offset: 832 Size: 16 [unused] // float4 PSSMDistances; // Offset: 848 Size: 16 [unused] // row_major float4x4 WorldToPSSM0; // Offset: 864 Size: 64 [unused] // row_major float4x4 PrevViewProject;// Offset: 928 Size: 64 [unused] // row_major float4x4 PrevWorld; // Offset: 992 Size: 64 [unused] // row_major float4x4 ViewT; // Offset: 1056 Size: 64 [unused] // float4 PSSMExtents; // Offset: 1120 Size: 16 [unused] // float4 ShadowAtlasResolution; // Offset: 1136 Size: 16 [unused] // float4 UnitRimData[3]; // Offset: 1152 Size: 48 [unused] // float3 __CameraPositionForCorrection;// Offset: 1200 Size: 12 [unused] // float __padding7; // Offset: 1212 Size: 4 [unused] // row_major float4x4 CameraViewProject;// Offset: 1216 Size: 64 [unused] // float4 BackBufferResolution; // Offset: 1280 Size: 16 [unused] // row_major float4x4 InverseProjection;// Offset: 1296 Size: 64 [unused] // float4 StereoOffset; // Offset: 1360 Size: 16 [unused] // row_major float4x4 Projection; // Offset: 1376 Size: 64 [unused] // row_major float4x4 ViewInv; // Offset: 1440 Size: 64 [unused] // float4 ColorSSAO; // Offset: 1504 Size: 16 [unused] // float4 GlobalFogColor; // Offset: 1520 Size: 16 [unused] // float4 VolumetricLightGlobalParams;// Offset: 1536 Size: 16 [unused] // float4 SnowParams01; // Offset: 1552 Size: 16 [unused] // float4 SnowParams02; // Offset: 1568 Size: 16 [unused] // float4 SnowParams03; // Offset: 1584 Size: 16 [unused] // int SSREnabled; // Offset: 1600 Size: 4 [unused] // int __padding4; // Offset: 1604 Size: 4 [unused] // int __padding5; // Offset: 1608 Size: 4 [unused] // int __padding6; // Offset: 1612 Size: 4 [unused] // // } // // cbuffer cbTiledLighting // { // // uint g_uNumNonDirectionalLights; // Offset: 0 Size: 4 // uint g_uNumDirectionalLights; // Offset: 4 Size: 4 [unused] // uint g_uNumTilesX; // Offset: 8 Size: 4 // uint g_uNumTilesY; // Offset: 12 Size: 4 [unused] // row_major float4x4 g_mProjection; // Offset: 16 Size: 64 [unused] // row_major float4x4 g_mInvProjection;// Offset: 80 Size: 64 [unused] // // } ............... // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // DepthBufferTexture_texture texture float4 2d 1 1 // LightMinMaxBuffer texture struct r/o 3 1 // LightDataBuffer texture struct r/o 4 1 // LightIndexBuffer UAV uint4 buf 0 1 // SceneBuffer cbuffer NA NA 0 1 // cbTiledLighting cbuffer NA NA 7 1 ............... [/code] Then I have the declarations like this: [code] dcl_constantbuffer cb0[46], immediateIndexed dcl_constantbuffer cb7[1], immediateIndexed [/code] From what I understand cb0 is SceneBuffer. cb7 is cbTiledLighting (based on the SLOT number). What I don't understand are the sizes! why cb0[46] and cb7[1]?? If I look at the structures that are way bigger... Also I don't quite get how to access "// float4 FogParams; // Offset: 144 Size: 16 [unused]" for example... Is cb[X].xyzw? The offeset is 144 but my cb0 is defined as a size of 46 so X is definitely not 144 but then what value do I pass as the index in cb0[] ? Anyone can provide any help? Sorry if it sounds stupid but I can't remember how I do this... :( Thank you in advance!
Hi guys,

Sorry for the STUPID question but I can't remember how to do this....

In a shader I have these definitions:
// Buffer Definitions: 
//
// cbuffer SceneBuffer
// {
//
// row_major float4x4 View; // Offset: 0 Size: 64 [unused]
// row_major float4x4 ScreenMatrix; // Offset: 64 Size: 64 [unused]
// float2 DepthExportScale; // Offset: 128 Size: 8 [unused]
// float2 __padding0; // Offset: 136 Size: 8 [unused]
// float4 FogParams; // Offset: 144 Size: 16 [unused]
// float3 __CameraPosition; // Offset: 160 Size: 12 [unused]
// float __padding12; // Offset: 172 Size: 4 [unused]
// float3 CameraDirection; // Offset: 176 Size: 12 [unused]
// float __padding9; // Offset: 188 Size: 4 [unused]
// float3 DepthFactors; // Offset: 192 Size: 12 [unused]
// float __padding10; // Offset: 204 Size: 4 [unused]
// float3 ShadowDepthBiasAndLightType;// Offset: 208 Size: 12 [unused]
// float __padding11; // Offset: 220 Size: 4 [unused]
// float4 SubframeViewport; // Offset: 224 Size: 16 [unused]
// row_major float3x4 DepthToWorld; // Offset: 240 Size: 48 [unused]
// float4 DepthToView; // Offset: 288 Size: 16
// float4 OneOverDepthToView; // Offset: 304 Size: 16 [unused]
// float4 DepthToW; // Offset: 320 Size: 16
// float4 ClipPlane; // Offset: 336 Size: 16 [unused]
// float2 ViewportDepthScaleOffset; // Offset: 352 Size: 8 [unused]
// float2 __padding1; // Offset: 360 Size: 8 [unused]
// float2 ColorDOFDepthScaleOffset; // Offset: 368 Size: 8 [unused]
// float2 __padding2; // Offset: 376 Size: 8 [unused]
// float4 TimeVector; // Offset: 384 Size: 16 [unused]
// float4 FogParams2; // Offset: 400 Size: 16 [unused]
// float4 FogParams3; // Offset: 416 Size: 16 [unused]
// float3 GlobalAmbient; // Offset: 432 Size: 12 [unused]
// float __padding8; // Offset: 444 Size: 4 [unused]
// float4 GlobalParams[16]; // Offset: 448 Size: 256 [unused]
// float4 ViewToFogH; // Offset: 704 Size: 16 [unused]
// float4 ScreenExtents; // Offset: 720 Size: 16
// float2 ScreenResolution; // Offset: 736 Size: 8 [unused]
// float2 __padding3; // Offset: 744 Size: 8 [unused]
// float4 PSSMToMap1Lin; // Offset: 752 Size: 16 [unused]
// float4 PSSMToMap1Const; // Offset: 768 Size: 16 [unused]
// float4 PSSMToMap2Lin; // Offset: 784 Size: 16 [unused]
// float4 PSSMToMap2Const; // Offset: 800 Size: 16 [unused]
// float4 PSSMToMap3Lin; // Offset: 816 Size: 16 [unused]
// float4 PSSMToMap3Const; // Offset: 832 Size: 16 [unused]
// float4 PSSMDistances; // Offset: 848 Size: 16 [unused]
// row_major float4x4 WorldToPSSM0; // Offset: 864 Size: 64 [unused]
// row_major float4x4 PrevViewProject;// Offset: 928 Size: 64 [unused]
// row_major float4x4 PrevWorld; // Offset: 992 Size: 64 [unused]
// row_major float4x4 ViewT; // Offset: 1056 Size: 64 [unused]
// float4 PSSMExtents; // Offset: 1120 Size: 16 [unused]
// float4 ShadowAtlasResolution; // Offset: 1136 Size: 16 [unused]
// float4 UnitRimData[3]; // Offset: 1152 Size: 48 [unused]
// float3 __CameraPositionForCorrection;// Offset: 1200 Size: 12 [unused]
// float __padding7; // Offset: 1212 Size: 4 [unused]
// row_major float4x4 CameraViewProject;// Offset: 1216 Size: 64 [unused]
// float4 BackBufferResolution; // Offset: 1280 Size: 16 [unused]
// row_major float4x4 InverseProjection;// Offset: 1296 Size: 64 [unused]
// float4 StereoOffset; // Offset: 1360 Size: 16 [unused]
// row_major float4x4 Projection; // Offset: 1376 Size: 64 [unused]
// row_major float4x4 ViewInv; // Offset: 1440 Size: 64 [unused]
// float4 ColorSSAO; // Offset: 1504 Size: 16 [unused]
// float4 GlobalFogColor; // Offset: 1520 Size: 16 [unused]
// float4 VolumetricLightGlobalParams;// Offset: 1536 Size: 16 [unused]
// float4 SnowParams01; // Offset: 1552 Size: 16 [unused]
// float4 SnowParams02; // Offset: 1568 Size: 16 [unused]
// float4 SnowParams03; // Offset: 1584 Size: 16 [unused]
// int SSREnabled; // Offset: 1600 Size: 4 [unused]
// int __padding4; // Offset: 1604 Size: 4 [unused]
// int __padding5; // Offset: 1608 Size: 4 [unused]
// int __padding6; // Offset: 1612 Size: 4 [unused]
//
// }
//
// cbuffer cbTiledLighting
// {
//
// uint g_uNumNonDirectionalLights; // Offset: 0 Size: 4
// uint g_uNumDirectionalLights; // Offset: 4 Size: 4 [unused]
// uint g_uNumTilesX; // Offset: 8 Size: 4
// uint g_uNumTilesY; // Offset: 12 Size: 4 [unused]
// row_major float4x4 g_mProjection; // Offset: 16 Size: 64 [unused]
// row_major float4x4 g_mInvProjection;// Offset: 80 Size: 64 [unused]
//
// }
...............
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// DepthBufferTexture_texture texture float4 2d 1 1
// LightMinMaxBuffer texture struct r/o 3 1
// LightDataBuffer texture struct r/o 4 1
// LightIndexBuffer UAV uint4 buf 0 1
// SceneBuffer cbuffer NA NA 0 1
// cbTiledLighting cbuffer NA NA 7 1
...............


Then I have the declarations like this:
dcl_constantbuffer cb0[46], immediateIndexed
dcl_constantbuffer cb7[1], immediateIndexed



From what I understand cb0 is SceneBuffer. cb7 is cbTiledLighting (based on the SLOT number).
What I don't understand are the sizes! why cb0[46] and cb7[1]?? If I look at the structures that are way bigger...
Also I don't quite get how to access "// float4 FogParams; // Offset: 144 Size: 16 [unused]" for example... Is cb[X].xyzw? The offeset is 144 but my cb0 is defined as a size of 46 so X is definitely not 144 but then what value do I pass as the index in cb0[] ?

Anyone can provide any help? Sorry if it sounds stupid but I can't remember how I do this... :(

Thank you in advance!

1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc


My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com

(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)

Posted 02/19/2016 11:29 AM   
The declaration in the shader is set by the compiler for the largest offset the shader accesses, not the actual size of the buffer - so you can increase that to the real size quite safely if you need something further in the buffer. To go from the byte offset in the comment to the index and component (for assembly shaders): To get the index divide the offset by 16 and round down To get the component take the remainder of that division and divide again by 4 (0=x, 1=y, 2=z, 3=w) Then if it's a float4 or a matrix add whichever component you are after.
The declaration in the shader is set by the compiler for the largest offset the shader accesses, not the actual size of the buffer - so you can increase that to the real size quite safely if you need something further in the buffer.

To go from the byte offset in the comment to the index and component (for assembly shaders):

To get the index divide the offset by 16 and round down
To get the component take the remainder of that division and divide again by 4 (0=x, 1=y, 2=z, 3=w)

Then if it's a float4 or a matrix add whichever component you are after.

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

Posted 02/19/2016 01:15 PM   
So basically in the above example to access: float4 FogParams; // Offset: 144 Size: 16 I need to do: 144/16 = 9 which means cb0[9] will point to float4 FogParams. So if I want to access FogParams.z I could do: cb0[9].x ? That's why in the Tomb Raider CS you access it like this: [code] add r13.w, r8.z, -r13.y mul r13.w, r13.w, r13.x mad r8.x, -r13.w, cb0[81].x, r8.x [/code] Where cb0[81] is basically pointing to the InverseProjection and .x is actually the first component (the FOV) ._m00. So in order to access the ._m11 component of the matrix I would need to use cb0[82].y ? Hope I got it right?:) Thank you!
So basically in the above example to access:
float4 FogParams; // Offset: 144 Size: 16

I need to do: 144/16 = 9
which means cb0[9] will point to float4 FogParams. So if I want to access FogParams.z I could do:
cb0[9].x ?

That's why in the Tomb Raider CS you access it like this:
add r13.w, r8.z, -r13.y
mul r13.w, r13.w, r13.x
mad r8.x, -r13.w, cb0[81].x, r8.x

Where cb0[81] is basically pointing to the InverseProjection and .x is actually the first component (the FOV) ._m00. So in order to access the ._m11 component of the matrix I would need to use cb0[82].y ?

Hope I got it right?:) Thank you!

1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc


My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com

(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)

Posted 02/19/2016 01:27 PM   
[quote="helifax"]So basically in the above example to access: float4 FogParams; // Offset: 144 Size: 16 I need to do: 144/16 = 9 which means cb0[9] will point to float4 FogParams. So if I want to access FogParams.z I could do: cb0[9].x ? [/quote] That's right, except for FogParams.z it would be cb0[9].z ;-) [quote] That's why in the Tomb Raider CS you access it like this: [code] add r13.w, r8.z, -r13.y mul r13.w, r13.w, r13.x mad r8.x, -r13.w, cb0[81].x, r8.x [/code] Where cb0[81] is basically pointing to the InverseProjection and .x is actually the first component (the FOV) ._m00. So in order to access the ._m11 component of the matrix I would need to use cb0[82].y ? [/quote] Correct :)
helifax said:So basically in the above example to access:
float4 FogParams; // Offset: 144 Size: 16

I need to do: 144/16 = 9
which means cb0[9] will point to float4 FogParams. So if I want to access FogParams.z I could do:
cb0[9].x ?

That's right, except for FogParams.z it would be cb0[9].z ;-)


That's why in the Tomb Raider CS you access it like this:
add r13.w, r8.z, -r13.y
mul r13.w, r13.w, r13.x
mad r8.x, -r13.w, cb0[81].x, r8.x

Where cb0[81] is basically pointing to the InverseProjection and .x is actually the first component (the FOV) ._m00. So in order to access the ._m11 component of the matrix I would need to use cb0[82].y ?

Correct :)

2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit

Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD

Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword

Posted 02/19/2016 02:22 PM   
[quote="DarkStarSword"][quote="helifax"]So basically in the above example to access: float4 FogParams; // Offset: 144 Size: 16 I need to do: 144/16 = 9 which means cb0[9] will point to float4 FogParams. So if I want to access FogParams.z I could do: cb0[9].x ? [/quote] That's right, except for FogParams.z it would be cb0[9].z ;-) [quote] That's why in the Tomb Raider CS you access it like this: [code] add r13.w, r8.z, -r13.y mul r13.w, r13.w, r13.x mad r8.x, -r13.w, cb0[81].x, r8.x [/code] Where cb0[81] is basically pointing to the InverseProjection and .x is actually the first component (the FOV) ._m00. So in order to access the ._m11 component of the matrix I would need to use cb0[82].y ? [/quote] Correct :) [/quote] Big thanks! I'll be sure to sticky this one now in my bookmarks as I'll forget it again at some point, I'm sure of it hahah:))
DarkStarSword said:
helifax said:So basically in the above example to access:
float4 FogParams; // Offset: 144 Size: 16

I need to do: 144/16 = 9
which means cb0[9] will point to float4 FogParams. So if I want to access FogParams.z I could do:
cb0[9].x ?

That's right, except for FogParams.z it would be cb0[9].z ;-)


That's why in the Tomb Raider CS you access it like this:
add r13.w, r8.z, -r13.y
mul r13.w, r13.w, r13.x
mad r8.x, -r13.w, cb0[81].x, r8.x

Where cb0[81] is basically pointing to the InverseProjection and .x is actually the first component (the FOV) ._m00. So in order to access the ._m11 component of the matrix I would need to use cb0[82].y ?

Correct :)


Big thanks! I'll be sure to sticky this one now in my bookmarks as I'll forget it again at some point, I'm sure of it hahah:))

1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc


My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com

(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)

Posted 02/19/2016 02:29 PM   
So I started to look at making a couple of simple HUD fixes for games I play. Grim Dawn, and Path of exile. Yet I am not getting Helixmod or 3DMigoto to "Hook in" on any of those, actually I have come across this problem fairly often. I have tried all versions of both the tools (32bit, 64bit ect) I just tried everything when the version that should be correct for the systems the game is using didn't work. Is it just a case of it not working with certain games or is there some tricks around this? Cheers.
So I started to look at making a couple of simple HUD fixes for games I play. Grim Dawn, and Path of exile.

Yet I am not getting Helixmod or 3DMigoto to "Hook in" on any of those, actually I have come across this problem fairly often. I have tried all versions of both the tools (32bit, 64bit ect) I just tried everything when the version that should be correct for the systems the game is using didn't work.

Is it just a case of it not working with certain games or is there some tricks around this?

Cheers.

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
ASUS Turbo 2080TI
Samsung SSD 840Pro
ASUS Z97-WS3D
Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

Posted 02/25/2016 02:06 AM   
[quote="necropants"]So I started to look at making a couple of simple HUD fixes for games I play. Grim Dawn, and Path of exile. Yet I am not getting Helixmod or 3DMigoto to "Hook in" on any of those, actually I have come across this problem fairly often. I have tried all versions of both the tools (32bit, 64bit ect) I just tried everything when the version that should be correct for the systems the game is using didn't work. Is it just a case of it not working with certain games or is there some tricks around this? Cheers.[/quote] Best way to look for proper hooking is to enable logging for either tool, and look for a log file being generated. You may not see anything on screen, but if it successfully connects, you'll get something in the log. DX11 wrapping with 3Dmigoto doesn't ever fully fail that I can tell. We've had some weird anti-social games that later disconnect it (like MGSV), but it pretty much always wraps. If you don't see a log, let me know and we can try an early-load technique, or try the hook settings in d3dx.ini. For HelixMod, yes, there are many times when a given version won't properly wrap a game. Your only possibility here is to try the other variants of HelixMod to see if older versions work.
necropants said:So I started to look at making a couple of simple HUD fixes for games I play. Grim Dawn, and Path of exile.

Yet I am not getting Helixmod or 3DMigoto to "Hook in" on any of those, actually I have come across this problem fairly often. I have tried all versions of both the tools (32bit, 64bit ect) I just tried everything when the version that should be correct for the systems the game is using didn't work.

Is it just a case of it not working with certain games or is there some tricks around this?

Cheers.

Best way to look for proper hooking is to enable logging for either tool, and look for a log file being generated. You may not see anything on screen, but if it successfully connects, you'll get something in the log.

DX11 wrapping with 3Dmigoto doesn't ever fully fail that I can tell. We've had some weird anti-social games that later disconnect it (like MGSV), but it pretty much always wraps. If you don't see a log, let me know and we can try an early-load technique, or try the hook settings in d3dx.ini.

For HelixMod, yes, there are many times when a given version won't properly wrap a game. Your only possibility here is to try the other variants of HelixMod to see if older versions work.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 02/25/2016 10:17 AM   
Just keep in mind the wrappers from Helix only work with dx9 games. 3Dmigoto works with dx11 games. Helix has a dx11 wrapper, but I think it was never released for public use.
Just keep in mind the wrappers from Helix only work with dx9 games.

3Dmigoto works with dx11 games.

Helix has a dx11 wrapper, but I think it was never released for public use.

Posted 02/25/2016 10:37 AM   
Yeah thanks guys, I am aware of this obviously, I only started messing with everything just in case something weird was going on. I know Grim Dawn for instance is listed as a Dx11 game, but it still supports dx9. But no where can you seem to select which mode it runs in. So I started messing with both wrappers. I am pretty certain POE is Dx9 (since the engine is so old at this point.) I'll mess around with this and see what I can uncover.
Yeah thanks guys, I am aware of this obviously, I only started messing with everything just in case something weird was going on. I know Grim Dawn for instance is listed as a Dx11 game, but it still supports dx9. But no where can you seem to select which mode it runs in. So I started messing with both wrappers.

I am pretty certain POE is Dx9 (since the engine is so old at this point.)

I'll mess around with this and see what I can uncover.

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
ASUS Turbo 2080TI
Samsung SSD 840Pro
ASUS Z97-WS3D
Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

Posted 02/26/2016 12:54 AM   
Ok So apparently Grim Dawn is Dx9 after all. I tried all the helix DLL's the older ones just crash the game on startup. The only thing that appears in the log is. Start logging.. Direct3DCreate9Ex Created
Ok So apparently Grim Dawn is Dx9 after all. I tried all the helix DLL's the older ones just crash the game on startup. The only thing that appears in the log is.

Start logging..

Direct3DCreate9Ex Created

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
ASUS Turbo 2080TI
Samsung SSD 840Pro
ASUS Z97-WS3D
Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

Posted 02/27/2016 12:50 PM   
[quote="necropants"]Ok So apparently Grim Dawn is Dx9 after all. I tried all the helix DLL's the older ones just crash the game on startup. The only thing that appears in the log is. Start logging.. Direct3DCreate9Ex Created [/quote] I bought this game yesterday and had a quick look. In the Steam directory, delete [i]GameOverlayRenderer.dll[/i] to prevent the game from crashing. Also, if you want to use the newer Helixmod DLLs, in the Dx9Settings file, under [General], add the line: [code]UseExtInterfaceOnly=true[/code] In-game, I was getting some left eye lighting issues. But turning off Post Processing fixes it. Let me know if you need any further assistance with this game.
necropants said:Ok So apparently Grim Dawn is Dx9 after all. I tried all the helix DLL's the older ones just crash the game on startup. The only thing that appears in the log is.

Start logging..

Direct3DCreate9Ex Created


I bought this game yesterday and had a quick look. In the Steam directory, delete GameOverlayRenderer.dll to prevent the game from crashing. Also, if you want to use the newer Helixmod DLLs, in the Dx9Settings file, under [General], add the line:

UseExtInterfaceOnly=true


In-game, I was getting some left eye lighting issues. But turning off Post Processing fixes it.

Let me know if you need any further assistance with this game.

Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35

Posted 02/27/2016 01:27 PM   
Thanks a lot. If you are thinking of working your magic on this one, be my guest I am not sure how long it will take me to get any result's. I just thought would be a good candidate to learn some more things about fixing since it's already pretty good out of the box. I always find it helps me to learn if it's a game I am interested in. Messing around with POE as well. it seems it doesn't even try and create a log. *edit* Ok well I am not sure what I am doing wrong in this case but I still am not getting any shader hunting text. I don't even see GameOverlayRenderer.dll anywhere What version of the Helix dll are you using?
Thanks a lot. If you are thinking of working your magic on this one, be my guest I am not sure how long it will take me to get any result's. I just thought would be a good candidate to learn some more things about fixing since it's already pretty good out of the box. I always find it helps me to learn if it's a game I am interested in.

Messing around with POE as well. it seems it doesn't even try and create a log.

*edit*

Ok well I am not sure what I am doing wrong in this case but I still am not getting any shader hunting text. I don't even see GameOverlayRenderer.dll anywhere
What version of the Helix dll are you using?

i7-4790K CPU 4.8Ghz stable overclock.
16 GB RAM Corsair
ASUS Turbo 2080TI
Samsung SSD 840Pro
ASUS Z97-WS3D
Surround ASUS Rog Swift PG278Q(R), 2x PG278Q (yes it works)
Obutto R3volution.
Windows 10 pro 64x (Windows 7 Dual boot)

Posted 02/27/2016 02:26 PM   
  53 / 88    
Scroll To Top