Star Citizen Fix..
  1 / 4    
Hey Guys, I was going to fix this game or at least look at it.. But in another thread I hear they are going to go Vulcan with the API.. I was wondering if it was even worth it too look at the Alpha version of where it is at now.. I figure if the go Vulcan 3D Migoto will not work is this correct.. I was poking around and got it working in S3D it appears this game as it stands is VERY Broken.. 1. Shadows broke. 2. A lot of Bllom effects need fixing.. 3. seems like some sort of Blur effect which screws things up.. 4. Lights looking weird.. I also noticed there is no real settings to change certain effects like bloom, Blur and such.. there are only presets Low, Med, High, Ultra High.. The game also seemd like it was not very crisp looked like I was running really low res. I did not get out to space but inside there are many broke effects.. Looking again at the code it appears there is something wrong with line 253?? I think I see the problem but not sure what to do to fix it.. I will go look at some other code in Crysis 3 & 4 maybe.. [code] // ---- Created with 3Dmigoto v1.2.56 on Mon Mar 27 07:55:29 2017 // weird artifacts on walls in station disabled.. cbuffer PER_BATCH : register(b0) { float4 DecalZFightingRemedy : packoffset(c0); row_major float4x4 mProjection : packoffset(c1); } cbuffer PER_FRAME : register(b2) { float4 g_VS_WorldViewPos_Deprecated : packoffset(c6); float4 g_VS_AnimGenParams : packoffset(c8); row_major float4x4 g_VS_ViewProjZeroMatr : packoffset(c10); } cbuffer SInstanceConstantBuffer : register(b8) { struct { row_major float3x4 ObjWorldMatrix; row_major float3x4 MotionBlurData; float4 VisionParams; float4 BendInfo; float4 AmbientOp; float AmbientAlpha; float ObjectAlpha; float RenderQuality; uint ScatteringQueryIndex; float4 AlphaTest; float4 AvgFogVolumeContrib; float4 GlowParams; float4 WearDirtParams; } InstanceBuffer[2] : packoffset(c0); } cbuffer SInstanceConstantBufferIndex : register(b11) { uint4 nContantBufferIndex : packoffset(c0); } cbuffer CBMeshPosDecompression : register(b12) { float4 MeshPosDecompressionScale : packoffset(c0); float4 MeshPosDecompressionBias : packoffset(c1); } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float2 v1 : TEXCOORD0, float4 v2 : COLOR0, uint v3 : TANGENT0, uint v4 : BINORMAL0, uint v5 : SV_InstanceID0, out float4 o0 : SV_Position0, out float4 o1 : TEXCOORD0, out float4 o2 : TEXCOORD1, out float4 o3 : TEXCOORD2, out float4 o4 : TEXCOORD3, out float4 o5 : COLOR0, out float3 o6 : TEXCOORD4, out float3 o7 : GLOW_AMT0) { // Needs manual fix for instruction: // unknown dcl_: dcl_input_sgv v5.x, instance_id float4 r0,r1,r2,r3,r4; uint4 bitmask, uiDest; float4 fDest; r0.xyz = v0.xyz * MeshPosDecompressionScale.xyz + MeshPosDecompressionBias.xyz; r1.x = v3.x; r1.z = v4.x; r1.yw = (uint2)r1.xz >> int2(15,15); r2.xyzw = (int4)r1.xyzw & int4(0,0,0,0); r1.xy = (int2)r1.xz & int2(0,0); r2.xyzw = (int4)r2.xyzw + int4(0,0,0,0); r2.xyzw = (int4)r2.xyzw; r3.xyzw = float4(6.10388815e-005,6.10388815e-005,6.10388815e-005,6.10388815e-005) * r2.xyzw; r3.x = dot(r3.xy, r3.xy); r3.y = dot(r3.zw, r3.zw); r1.zw = float2(1,1) + -r3.xy; r1.zw = max(float2(0,0), r1.zw); r1.zw = sqrt(r1.zw); r1.xy = r1.xy ? -r1.zw : r1.zw; r3.z = r1.y; r1.zw = r2.yx * float2(6.10388815e-005,6.10388815e-005) + float2(0,9.99999997e-007); r3.xy = r2.zw * float2(6.10388815e-005,6.10388815e-005) + float2(-9.99999997e-007,0); r2.xyz = r3.yzx * r1.xwz; r2.xyz = r1.zxw * r3.zxy + -r2.xyz; r0.w = dot(r2.xyz, r2.xyz); r0.w = rsqrt(r0.w); r2.xyz = r2.xyz * r0.www; r0.w = (int)v3.x & 0x80000000; r0.w = r0.w ? -1 : 1; r2.xyz = r2.xyz * r0.www; o2.w = r0.w; r0.xyz = r2.xyz * DecalZFightingRemedy.zzz + r0.xyz; r0.w = 1; r1.y = (int)v5.x + (int)nContantBufferIndex.x; r1.y = (int)r1.y * 14; r4.x = dot(InstanceBuffer[r1.y]._m00_m01_m02_m03, r0.xyzw); r4.y = dot(InstanceBuffer[r1.y]._m10_m11_m12_m13, r0.xyzw); r4.z = dot(InstanceBuffer[r1.y]._m20_m21_m22_m23, r0.xyzw); r4.w = 1; r0.x = dot(g_VS_ViewProjZeroMatr._m20_m21_m22_m23, r4.xyzw); o0.z = DecalZFightingRemedy.x + r0.x; o0.x = dot(g_VS_ViewProjZeroMatr._m00_m01_m02_m03, r4.xyzw); o0.y = dot(g_VS_ViewProjZeroMatr._m10_m11_m12_m13, r4.xyzw); o0.w = dot(g_VS_ViewProjZeroMatr._m30_m31_m32_m33, r4.xyzw); o6.xyz = r4.xyz; o1.xy = v1.xy; o1.zw = float2(0,1); o2.x = dot(InstanceBuffer[r1.y]._m02_m01_m00, r1.xzw); o2.y = dot(InstanceBuffer[r1.y]._m12_m11_m10, r1.xzw); o2.z = dot(InstanceBuffer[r1.y]._m22_m21_m20, r1.xzw); o3.x = dot(InstanceBuffer[r1.y]._m00_m01_m02, r3.xyz); o3.y = dot(InstanceBuffer[r1.y]._m10_m11_m12, r3.xyz); o3.z = dot(InstanceBuffer[r1.y]._m20_m21_m22, r3.xyz); o3.w = 0; o4.x = dot(InstanceBuffer[r1.y]._m00_m01_m02, r2.xyz); o4.y = dot(InstanceBuffer[r1.y]._m10_m11_m12, r2.xyz); o4.z = dot(InstanceBuffer[r1.y]._m20_m21_m22, r2.xyz); o7.xyz = InstanceBuffer[r1.y].xyz; o4.w = 0; o5.xyzw = v2.zyxw; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384 // // using 3Dmigoto v1.2.56 on Mon Mar 27 07:55:29 2017 // // // Buffer Definitions: // // cbuffer PER_BATCH // { // // float4 DecalZFightingRemedy; // Offset: 0 Size: 16 // row_major float4x4 mProjection; // Offset: 16 Size: 64 [unused] // // } // // cbuffer PER_FRAME // { // // float4 g_VS_WorldViewPos_Deprecated;// Offset: 96 Size: 16 [unused] // float4 g_VS_AnimGenParams; // Offset: 128 Size: 16 [unused] // row_major float4x4 g_VS_ViewProjZeroMatr;// Offset: 160 Size: 64 // // } // // cbuffer SInstanceConstantBuffer // { // // struct <unnamed> // { // // row_major float3x4 ObjWorldMatrix;// Offset: 0 // row_major float3x4 MotionBlurData;// Offset: 48 // float4 VisionParams; // Offset: 96 // float4 BendInfo; // Offset: 112 // float4 AmbientOp; // Offset: 128 // float AmbientAlpha; // Offset: 144 // float ObjectAlpha; // Offset: 148 // float RenderQuality; // Offset: 152 // uint ScatteringQueryIndex; // Offset: 156 // float4 AlphaTest; // Offset: 160 // float4 AvgFogVolumeContrib; // Offset: 176 // float4 GlowParams; // Offset: 192 // float4 WearDirtParams; // Offset: 208 // // } InstanceBuffer[2]; // Offset: 0 Size: 448 // // } // // cbuffer SInstanceConstantBufferIndex // { // // uint4 nContantBufferIndex; // Offset: 0 Size: 16 // // } // // cbuffer CBMeshPosDecompression // { // // float4 MeshPosDecompressionScale; // Offset: 0 Size: 16 // float4 MeshPosDecompressionBias; // Offset: 16 Size: 16 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // PER_BATCH cbuffer NA NA 0 1 // PER_FRAME cbuffer NA NA 2 1 // SInstanceConstantBuffer cbuffer NA NA 8 1 // SInstanceConstantBufferIndex cbuffer NA NA 11 1 // CBMeshPosDecompression cbuffer NA NA 12 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyz // TEXCOORD 0 xy 1 NONE float xy // COLOR 0 xyzw 2 NONE float xyzw // TANGENT 0 x 3 NONE uint x // BINORMAL 0 x 4 NONE uint x // SV_InstanceID 0 x 5 INSTID uint x // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xyzw // TEXCOORD 0 xyzw 1 NONE float xyzw // TEXCOORD 1 xyzw 2 NONE float xyzw // TEXCOORD 2 xyzw 3 NONE float xyzw // TEXCOORD 3 xyzw 4 NONE float xyzw // COLOR 0 xyzw 5 NONE float xyzw // TEXCOORD 4 xyz 6 NONE float xyz // GLOW_AMT 0 xyz 7 NONE float xyz // vs_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[1], immediateIndexed dcl_constantbuffer cb2[14], immediateIndexed dcl_constantbuffer cb8[28], dynamicIndexed dcl_constantbuffer cb11[1], immediateIndexed dcl_constantbuffer cb12[2], immediateIndexed dcl_input v0.xyz dcl_input v1.xy dcl_input v2.xyzw dcl_input v3.x dcl_input v4.x dcl_input_sgv v5.x, instance_id dcl_output_siv o0.xyzw, position dcl_output o1.xyzw dcl_output o2.xyzw dcl_output o3.xyzw dcl_output o4.xyzw dcl_output o5.xyzw dcl_output o6.xyz dcl_output o7.xyz dcl_temps 5 mad r0.xyz, v0.xyzx, cb12[0].xyzx, cb12[1].xyzx mov r1.x, v3.x mov r1.z, v4.x ushr r1.yw, r1.xxxz, l(0, 15, 0, 15) and r2.xyzw, r1.xyzw, l(0x00007fff, 0x00007fff, 0x00007fff, 0x00007fff) and r1.xy, r1.xzxx, l(0x40000000, 0x40000000, 0, 0) iadd r2.xyzw, r2.xyzw, l(0xffffc001, 0xffffc001, 0xffffc001, 0xffffc001) itof r2.xyzw, r2.xyzw mul r3.xyzw, r2.xyzw, l(0.0000610388815, 0.0000610388815, 0.0000610388815, 0.0000610388815) dp2 r3.x, r3.xyxx, r3.xyxx dp2 r3.y, r3.zwzz, r3.zwzz add r1.zw, -r3.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) max r1.zw, r1.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) sqrt r1.zw, r1.zzzw movc r1.xy, r1.xyxx, -r1.zwzz, r1.zwzz mov r3.z, r1.y mad r1.zw, r2.yyyx, l(0.000000, 0.000000, 0.0000610388815, 0.0000610388815), l(0.000000, 0.000000, 0.000000, 0.000001) mad r3.xy, r2.zwzz, l(0.0000610388815, 0.0000610388815, 0.000000, 0.000000), l(-0.000001, 0.000000, 0.000000, 0.000000) mul r2.xyz, r1.xwzx, r3.yzxy mad r2.xyz, r1.zxwz, r3.zxyz, -r2.xyzx dp3 r0.w, r2.xyzx, r2.xyzx rsq r0.w, r0.w mul r2.xyz, r0.wwww, r2.xyzx and r0.w, v3.x, l(0x80000000) movc r0.w, r0.w, l(-1.000000), l(1.000000) mul r2.xyz, r0.wwww, r2.xyzx mov o2.w, r0.w mad r0.xyz, r2.xyzx, cb0[0].zzzz, r0.xyzx mov r0.w, l(1.000000) iadd r1.y, v5.x, cb11[0].x imul null, r1.y, r1.y, l(14) dp4 r4.x, cb8[r1.y + 0].xyzw, r0.xyzw dp4 r4.y, cb8[r1.y + 1].xyzw, r0.xyzw dp4 r4.z, cb8[r1.y + 2].xyzw, r0.xyzw mov r4.w, l(1.000000) dp4 r0.x, cb2[12].xyzw, r4.xyzw add o0.z, r0.x, cb0[0].x dp4 o0.x, cb2[10].xyzw, r4.xyzw dp4 o0.y, cb2[11].xyzw, r4.xyzw dp4 o0.w, cb2[13].xyzw, r4.xyzw mov o6.xyz, r4.xyzx mov o1.xy, v1.xyxx mov o1.zw, l(0,0,0,1.000000) dp3 o2.x, cb8[r1.y + 0].zyxz, r1.xzwx dp3 o2.y, cb8[r1.y + 1].zyxz, r1.xzwx dp3 o2.z, cb8[r1.y + 2].zyxz, r1.xzwx dp3 o3.x, cb8[r1.y + 0].xyzx, r3.xyzx dp3 o3.y, cb8[r1.y + 1].xyzx, r3.xyzx dp3 o3.z, cb8[r1.y + 2].xyzx, r3.xyzx mov o3.w, l(0) dp3 o4.x, cb8[r1.y + 0].xyzx, r2.xyzx dp3 o4.y, cb8[r1.y + 1].xyzx, r2.xyzx dp3 o4.z, cb8[r1.y + 2].xyzx, r2.xyzx mov o7.xyz, cb8[r1.y + 12].xyzx mov o4.w, l(0) mov o5.xyzw, v2.zyxw ret // Approximately 57 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code]
Hey Guys,

I was going to fix this game or at least look at it.. But in another thread I hear they are going to go Vulcan with the API..

I was wondering if it was even worth it too look at the Alpha version of where it is at now.. I figure if the go Vulcan 3D Migoto will not work is this correct..

I was poking around and got it working in S3D it appears this game as it stands is VERY Broken..

1. Shadows broke.
2. A lot of Bllom effects need fixing..
3. seems like some sort of Blur effect which screws things up..
4. Lights looking weird..

I also noticed there is no real settings to change certain effects like bloom, Blur and such.. there are only presets Low, Med, High, Ultra High..

The game also seemd like it was not very crisp looked like I was running really low res. I did not get out to space but inside there are many broke effects..

Looking again at the code it appears there is something wrong with line 253?? I think I see the problem but not sure what to do to fix it.. I will go look at some other code in Crysis 3 & 4 maybe..


// ---- Created with 3Dmigoto v1.2.56 on Mon Mar 27 07:55:29 2017
// weird artifacts on walls in station disabled..
cbuffer PER_BATCH : register(b0)
{
float4 DecalZFightingRemedy : packoffset(c0);
row_major float4x4 mProjection : packoffset(c1);
}

cbuffer PER_FRAME : register(b2)
{
float4 g_VS_WorldViewPos_Deprecated : packoffset(c6);
float4 g_VS_AnimGenParams : packoffset(c8);
row_major float4x4 g_VS_ViewProjZeroMatr : packoffset(c10);
}

cbuffer SInstanceConstantBuffer : register(b8)
{

struct
{
row_major float3x4 ObjWorldMatrix;
row_major float3x4 MotionBlurData;
float4 VisionParams;
float4 BendInfo;
float4 AmbientOp;
float AmbientAlpha;
float ObjectAlpha;
float RenderQuality;
uint ScatteringQueryIndex;
float4 AlphaTest;
float4 AvgFogVolumeContrib;
float4 GlowParams;
float4 WearDirtParams;
} InstanceBuffer[2] : packoffset(c0);

}

cbuffer SInstanceConstantBufferIndex : register(b11)
{
uint4 nContantBufferIndex : packoffset(c0);
}

cbuffer CBMeshPosDecompression : register(b12)
{
float4 MeshPosDecompressionScale : packoffset(c0);
float4 MeshPosDecompressionBias : packoffset(c1);
}



// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
float2 v1 : TEXCOORD0,
float4 v2 : COLOR0,
uint v3 : TANGENT0,
uint v4 : BINORMAL0,
uint v5 : SV_InstanceID0,
out float4 o0 : SV_Position0,
out float4 o1 : TEXCOORD0,
out float4 o2 : TEXCOORD1,
out float4 o3 : TEXCOORD2,
out float4 o4 : TEXCOORD3,
out float4 o5 : COLOR0,
out float3 o6 : TEXCOORD4,
out float3 o7 : GLOW_AMT0)
{
// Needs manual fix for instruction:
// unknown dcl_: dcl_input_sgv v5.x, instance_id
float4 r0,r1,r2,r3,r4;
uint4 bitmask, uiDest;
float4 fDest;

r0.xyz = v0.xyz * MeshPosDecompressionScale.xyz + MeshPosDecompressionBias.xyz;
r1.x = v3.x;
r1.z = v4.x;
r1.yw = (uint2)r1.xz >> int2(15,15);
r2.xyzw = (int4)r1.xyzw & int4(0,0,0,0);
r1.xy = (int2)r1.xz & int2(0,0);
r2.xyzw = (int4)r2.xyzw + int4(0,0,0,0);
r2.xyzw = (int4)r2.xyzw;
r3.xyzw = float4(6.10388815e-005,6.10388815e-005,6.10388815e-005,6.10388815e-005) * r2.xyzw;
r3.x = dot(r3.xy, r3.xy);
r3.y = dot(r3.zw, r3.zw);
r1.zw = float2(1,1) + -r3.xy;
r1.zw = max(float2(0,0), r1.zw);
r1.zw = sqrt(r1.zw);
r1.xy = r1.xy ? -r1.zw : r1.zw;
r3.z = r1.y;
r1.zw = r2.yx * float2(6.10388815e-005,6.10388815e-005) + float2(0,9.99999997e-007);
r3.xy = r2.zw * float2(6.10388815e-005,6.10388815e-005) + float2(-9.99999997e-007,0);
r2.xyz = r3.yzx * r1.xwz;
r2.xyz = r1.zxw * r3.zxy + -r2.xyz;
r0.w = dot(r2.xyz, r2.xyz);
r0.w = rsqrt(r0.w);
r2.xyz = r2.xyz * r0.www;
r0.w = (int)v3.x & 0x80000000;
r0.w = r0.w ? -1 : 1;
r2.xyz = r2.xyz * r0.www;
o2.w = r0.w;
r0.xyz = r2.xyz * DecalZFightingRemedy.zzz + r0.xyz;
r0.w = 1;
r1.y = (int)v5.x + (int)nContantBufferIndex.x;
r1.y = (int)r1.y * 14;
r4.x = dot(InstanceBuffer[r1.y]._m00_m01_m02_m03, r0.xyzw);
r4.y = dot(InstanceBuffer[r1.y]._m10_m11_m12_m13, r0.xyzw);
r4.z = dot(InstanceBuffer[r1.y]._m20_m21_m22_m23, r0.xyzw);
r4.w = 1;
r0.x = dot(g_VS_ViewProjZeroMatr._m20_m21_m22_m23, r4.xyzw);
o0.z = DecalZFightingRemedy.x + r0.x;
o0.x = dot(g_VS_ViewProjZeroMatr._m00_m01_m02_m03, r4.xyzw);
o0.y = dot(g_VS_ViewProjZeroMatr._m10_m11_m12_m13, r4.xyzw);
o0.w = dot(g_VS_ViewProjZeroMatr._m30_m31_m32_m33, r4.xyzw);
o6.xyz = r4.xyz;
o1.xy = v1.xy;
o1.zw = float2(0,1);
o2.x = dot(InstanceBuffer[r1.y]._m02_m01_m00, r1.xzw);
o2.y = dot(InstanceBuffer[r1.y]._m12_m11_m10, r1.xzw);
o2.z = dot(InstanceBuffer[r1.y]._m22_m21_m20, r1.xzw);
o3.x = dot(InstanceBuffer[r1.y]._m00_m01_m02, r3.xyz);
o3.y = dot(InstanceBuffer[r1.y]._m10_m11_m12, r3.xyz);
o3.z = dot(InstanceBuffer[r1.y]._m20_m21_m22, r3.xyz);
o3.w = 0;
o4.x = dot(InstanceBuffer[r1.y]._m00_m01_m02, r2.xyz);
o4.y = dot(InstanceBuffer[r1.y]._m10_m11_m12, r2.xyz);
o4.z = dot(InstanceBuffer[r1.y]._m20_m21_m22, r2.xyz);
o7.xyz = InstanceBuffer[r1.y].xyz;
o4.w = 0;
o5.xyzw = v2.zyxw;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384
//
// using 3Dmigoto v1.2.56 on Mon Mar 27 07:55:29 2017
//
//
// Buffer Definitions:
//
// cbuffer PER_BATCH
// {
//
// float4 DecalZFightingRemedy; // Offset: 0 Size: 16
// row_major float4x4 mProjection; // Offset: 16 Size: 64 [unused]
//
// }
//
// cbuffer PER_FRAME
// {
//
// float4 g_VS_WorldViewPos_Deprecated;// Offset: 96 Size: 16 [unused]
// float4 g_VS_AnimGenParams; // Offset: 128 Size: 16 [unused]
// row_major float4x4 g_VS_ViewProjZeroMatr;// Offset: 160 Size: 64
//
// }
//
// cbuffer SInstanceConstantBuffer
// {
//
// struct <unnamed>
// {
//
// row_major float3x4 ObjWorldMatrix;// Offset: 0
// row_major float3x4 MotionBlurData;// Offset: 48
// float4 VisionParams; // Offset: 96
// float4 BendInfo; // Offset: 112
// float4 AmbientOp; // Offset: 128
// float AmbientAlpha; // Offset: 144
// float ObjectAlpha; // Offset: 148
// float RenderQuality; // Offset: 152
// uint ScatteringQueryIndex; // Offset: 156
// float4 AlphaTest; // Offset: 160
// float4 AvgFogVolumeContrib; // Offset: 176
// float4 GlowParams; // Offset: 192
// float4 WearDirtParams; // Offset: 208
//
// } InstanceBuffer[2]; // Offset: 0 Size: 448
//
// }
//
// cbuffer SInstanceConstantBufferIndex
// {
//
// uint4 nContantBufferIndex; // Offset: 0 Size: 16
//
// }
//
// cbuffer CBMeshPosDecompression
// {
//
// float4 MeshPosDecompressionScale; // Offset: 0 Size: 16
// float4 MeshPosDecompressionBias; // Offset: 16 Size: 16
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// PER_BATCH cbuffer NA NA 0 1
// PER_FRAME cbuffer NA NA 2 1
// SInstanceConstantBuffer cbuffer NA NA 8 1
// SInstanceConstantBufferIndex cbuffer NA NA 11 1
// CBMeshPosDecompression cbuffer NA NA 12 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyz
// TEXCOORD 0 xy 1 NONE float xy
// COLOR 0 xyzw 2 NONE float xyzw
// TANGENT 0 x 3 NONE uint x
// BINORMAL 0 x 4 NONE uint x
// SV_InstanceID 0 x 5 INSTID uint x
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xyzw
// TEXCOORD 0 xyzw 1 NONE float xyzw
// TEXCOORD 1 xyzw 2 NONE float xyzw
// TEXCOORD 2 xyzw 3 NONE float xyzw
// TEXCOORD 3 xyzw 4 NONE float xyzw
// COLOR 0 xyzw 5 NONE float xyzw
// TEXCOORD 4 xyz 6 NONE float xyz
// GLOW_AMT 0 xyz 7 NONE float xyz
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[1], immediateIndexed
dcl_constantbuffer cb2[14], immediateIndexed
dcl_constantbuffer cb8[28], dynamicIndexed
dcl_constantbuffer cb11[1], immediateIndexed
dcl_constantbuffer cb12[2], immediateIndexed
dcl_input v0.xyz
dcl_input v1.xy
dcl_input v2.xyzw
dcl_input v3.x
dcl_input v4.x
dcl_input_sgv v5.x, instance_id
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_output o6.xyz
dcl_output o7.xyz
dcl_temps 5
mad r0.xyz, v0.xyzx, cb12[0].xyzx, cb12[1].xyzx
mov r1.x, v3.x
mov r1.z, v4.x
ushr r1.yw, r1.xxxz, l(0, 15, 0, 15)
and r2.xyzw, r1.xyzw, l(0x00007fff, 0x00007fff, 0x00007fff, 0x00007fff)
and r1.xy, r1.xzxx, l(0x40000000, 0x40000000, 0, 0)
iadd r2.xyzw, r2.xyzw, l(0xffffc001, 0xffffc001, 0xffffc001, 0xffffc001)
itof r2.xyzw, r2.xyzw
mul r3.xyzw, r2.xyzw, l(0.0000610388815, 0.0000610388815, 0.0000610388815, 0.0000610388815)
dp2 r3.x, r3.xyxx, r3.xyxx
dp2 r3.y, r3.zwzz, r3.zwzz
add r1.zw, -r3.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
max r1.zw, r1.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
sqrt r1.zw, r1.zzzw
movc r1.xy, r1.xyxx, -r1.zwzz, r1.zwzz
mov r3.z, r1.y
mad r1.zw, r2.yyyx, l(0.000000, 0.000000, 0.0000610388815, 0.0000610388815), l(0.000000, 0.000000, 0.000000, 0.000001)
mad r3.xy, r2.zwzz, l(0.0000610388815, 0.0000610388815, 0.000000, 0.000000), l(-0.000001, 0.000000, 0.000000, 0.000000)
mul r2.xyz, r1.xwzx, r3.yzxy
mad r2.xyz, r1.zxwz, r3.zxyz, -r2.xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
and r0.w, v3.x, l(0x80000000)
movc r0.w, r0.w, l(-1.000000), l(1.000000)
mul r2.xyz, r0.wwww, r2.xyzx
mov o2.w, r0.w
mad r0.xyz, r2.xyzx, cb0[0].zzzz, r0.xyzx
mov r0.w, l(1.000000)
iadd r1.y, v5.x, cb11[0].x
imul null, r1.y, r1.y, l(14)
dp4 r4.x, cb8[r1.y + 0].xyzw, r0.xyzw
dp4 r4.y, cb8[r1.y + 1].xyzw, r0.xyzw
dp4 r4.z, cb8[r1.y + 2].xyzw, r0.xyzw
mov r4.w, l(1.000000)
dp4 r0.x, cb2[12].xyzw, r4.xyzw
add o0.z, r0.x, cb0[0].x
dp4 o0.x, cb2[10].xyzw, r4.xyzw
dp4 o0.y, cb2[11].xyzw, r4.xyzw
dp4 o0.w, cb2[13].xyzw, r4.xyzw
mov o6.xyz, r4.xyzx
mov o1.xy, v1.xyxx
mov o1.zw, l(0,0,0,1.000000)
dp3 o2.x, cb8[r1.y + 0].zyxz, r1.xzwx
dp3 o2.y, cb8[r1.y + 1].zyxz, r1.xzwx
dp3 o2.z, cb8[r1.y + 2].zyxz, r1.xzwx
dp3 o3.x, cb8[r1.y + 0].xyzx, r3.xyzx
dp3 o3.y, cb8[r1.y + 1].xyzx, r3.xyzx
dp3 o3.z, cb8[r1.y + 2].xyzx, r3.xyzx
mov o3.w, l(0)
dp3 o4.x, cb8[r1.y + 0].xyzx, r2.xyzx
dp3 o4.y, cb8[r1.y + 1].xyzx, r2.xyzx
dp3 o4.z, cb8[r1.y + 2].xyzx, r2.xyzx
mov o7.xyz, cb8[r1.y + 12].xyzx
mov o4.w, l(0)
mov o5.xyzw, v2.zyxw
ret
// Approximately 57 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#1
Posted 03/27/2017 12:13 PM   
Well it appears the no longer use the CryEngine and use Amazons Lumberyard hmmm will have to recheck a few settings in the ini then..
Well it appears the no longer use the CryEngine and use Amazons Lumberyard hmmm will have to recheck a few settings in the ini then..

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#2
Posted 03/27/2017 12:31 PM   
Vulkan is more like OpenGL , than it is DirectX. Vulkan is more like Mantle, than it is OpenGL. So no, 3Dmigoto will not work with Vulkan. Note: Vul[color="orange"]k[/color]an, is spelled with a [color="orange"]k[/color], not like the pointy eared Star Trek character.
Vulkan is more like OpenGL , than it is DirectX.

Vulkan is more like Mantle, than it is OpenGL.

So no, 3Dmigoto will not work with Vulkan.

Note: Vulkan, is spelled with a k, not like the pointy eared Star Trek character.

#3
Posted 03/27/2017 01:42 PM   
Yeah if they go full Vulkan, we don't have a tool that can do that. It might be possible for Helifax to make a variant of his OpenGL wrapper in the future. At present we have no plans to do that, because any game that ships with a specific API requirement like that tends to not be well received. I'd be really surprised if they did not have a Direct3D fallback path for their game, which is where 3Dmigoto could come in. Using Lumberyard seems like a totally bizarre choice to me, but it's probably related to them wanting access to AWS for their MMORG style play. Gives them server support that is otherwise hard to build. If you really care about this game it doesn't hurt to put in some fixing effort up front, just keep in mind that it tends to be a waste of time, because the early access tends to change a lot, and each change tends to break a fix. So you end up having to do the fix over and over again. As a general rule, I recommend waiting of course, but it's always your choice.
Yeah if they go full Vulkan, we don't have a tool that can do that. It might be possible for Helifax to make a variant of his OpenGL wrapper in the future.

At present we have no plans to do that, because any game that ships with a specific API requirement like that tends to not be well received. I'd be really surprised if they did not have a Direct3D fallback path for their game, which is where 3Dmigoto could come in.

Using Lumberyard seems like a totally bizarre choice to me, but it's probably related to them wanting access to AWS for their MMORG style play. Gives them server support that is otherwise hard to build.


If you really care about this game it doesn't hurt to put in some fixing effort up front, just keep in mind that it tends to be a waste of time, because the early access tends to change a lot, and each change tends to break a fix. So you end up having to do the fix over and over again.

As a general rule, I recommend waiting of course, but it's always your choice.

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

#4
Posted 03/27/2017 08:40 PM   
Yes, I was more or less looking to see if I could fix it and how it looked in S3D basically.. Maybe not a fix for public consumption.. Right now there are a lot of 2D Lights all over the place. I am going to look at some other fixes I know of that fixed 2D Light sources and see if I can get them corrected as disabling them is making the station very dark.. Anyword on the above code I posted and how to go about fixing it?? Probally an easy fix for the more learned but to me it is Greek. ;)
Yes, I was more or less looking to see if I could fix it and how it looked in S3D basically.. Maybe not a fix for public consumption..

Right now there are a lot of 2D Lights all over the place. I am going to look at some other fixes I know of that fixed 2D Light sources and see if I can get them corrected as disabling them is making the station very dark..

Anyword on the above code I posted and how to go about fixing it?? Probally an easy fix for the more learned but to me it is Greek. ;)

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#5
Posted 03/27/2017 10:09 PM   
[quote="The_Nephilim"]Yes, I was more or less looking to see if I could fix it and how it looked in S3D basically.. Maybe not a fix for public consumption.. Right now there are a lot of 2D Lights all over the place. I am going to look at some other fixes I know of that fixed 2D Light sources and see if I can get them corrected as disabling them is making the station very dark.. Anyword on the above code I posted and how to go about fixing it?? Probally an easy fix for the more learned but to me it is Greek. ;)[/quote] Also, as a strategy, start with different profiles. Especially for a game that doesn't have an NVidia profile, a lot of things can be fixed, simply by profile settings. That shader is OK. That's a warning for a missing instruction, but in fact the code is actually correct, so it should work as is. Let me know if it's not working correctly. Best place to see if a shader has compiled correctly or not is in the log file.
The_Nephilim said:Yes, I was more or less looking to see if I could fix it and how it looked in S3D basically.. Maybe not a fix for public consumption..

Right now there are a lot of 2D Lights all over the place. I am going to look at some other fixes I know of that fixed 2D Light sources and see if I can get them corrected as disabling them is making the station very dark..

Anyword on the above code I posted and how to go about fixing it?? Probally an easy fix for the more learned but to me it is Greek. ;)

Also, as a strategy, start with different profiles. Especially for a game that doesn't have an NVidia profile, a lot of things can be fixed, simply by profile settings.


That shader is OK. That's a warning for a missing instruction, but in fact the code is actually correct, so it should work as is.

Let me know if it's not working correctly. Best place to see if a shader has compiled correctly or not is in the log file.

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

#6
Posted 03/27/2017 10:25 PM   
OK will check the log file.. It is weird because a shader has the same error code thing and when I set the shader to disable it does not disable?? I will check different profiles to start with.. so back to square one.. EDIT: The first picture is what Star Citizen looks like with no shaders removed. you can see the light reflections from the top of the doors to the floor they are 2D there are quite a few. The 2nd Picture shows with the shader removed to help give a better idea what is in the file I will post in a minute.. Now I looked at some others code and it seemed a little cryptic to me at least.. I tried injecting and changing it too what I thought it should be but it had no effect and at 1 point it seemed to have disabled the shader.. here is the code of the shader from the 2D Light reflections: [code] // ---- Created with 3Dmigoto v1.2.56 on Mon Mar 27 21:17:38 2017 // 2D light refelctions cbuffer PER_BATCH : register(b0) { int4 InstanceOffset : packoffset(c0); row_major float4x4 mVStoHS : packoffset(c1); float4 ConservativeRasterSizePerMetre : packoffset(c5); } cbuffer TiledLightsCullInfoCB : register(b10) { struct { uint volumeType; uint shadeInfoIndex; float2 depthBounds; float3 positionVS; float radius; float4 volumeParams0; float4 volumeParams1; float3 volumeParams2; uint PADDING0; } TiledLightsCullInfoCB[2] : packoffset(c0); } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : POSITION0, float3 v1 : TEXCOORD0, uint v2 : SV_InstanceID0, out float4 o0 : SV_Position0, out uint o1 : LightID0) { // Needs manual fix for instruction: // unknown dcl_: dcl_input_sgv v2.x, instance_id float4 r0,r1,r2,r3,r4; uint4 bitmask, uiDest; float4 fDest; r0.x = cmp(0 < v1.x); r0.y = (int)v2.x + (int)InstanceOffset.x; r0.y = (int)r0.y * 5; r0.z = TiledLightsCullInfoCB[r0.y].volumeParams1.w * v0.x; r1.x = r0.x ? TiledLightsCullInfoCB[r0.y].radius : r0.z; r2.x = r0.x ? 1 : -1; r0.xz = TiledLightsCullInfoCB[r0.y].volumeParams1.zz * v0.xx + TiledLightsCullInfoCB[r0.y].volumeParams1.xy; r1.yz = v0.yz * r0.xz; r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.xyz * r1.zxy; r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r1.xyz + -r0.xzw; r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.www * r1.yzx + r0.xzw; r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r0.xzw; r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.yzx * r0.zwx + -r3.xyz; r0.xzw = r0.xzw * float3(2,2,2) + r1.xyz; r1.z = -TiledLightsCullInfoCB[r0.y].positionVS.z + r0.w; r1.xy = TiledLightsCullInfoCB[r0.y].positionVS.xy + r0.xz; r0.x = max(0, -r1.z); r2.yz = v0.yz; r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.xyz * r2.zxy; r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r2.xyz + -r3.xyz; r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.www * r2.yzx + r3.xyz; r4.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r3.xyz; r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.yzx * r3.yzx + -r4.xyz; o1.x = TiledLightsCullInfoCB[r0.y].shadeInfoIndex; r0.yzw = r3.xyz * float3(2,2,2) + r2.xyz; r0.xyz = r0.yzw * r0.xxx; r0.xyz = r0.xyz * ConservativeRasterSizePerMetre.xxx + r1.xyz; r1.xyzw = mVStoHS._m10_m11_m12_m13 * r0.yyyy; r1.xyzw = r0.xxxx * mVStoHS._m00_m01_m02_m03 + r1.xyzw; r0.xyzw = r0.zzzz * mVStoHS._m20_m21_m22_m23 + r1.xyzw; o0.xyzw = mVStoHS._m30_m31_m32_m33 + r0.xyzw; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384 // // using 3Dmigoto v1.2.56 on Mon Mar 27 21:17:38 2017 // // // Buffer Definitions: // // cbuffer PER_BATCH // { // // int4 InstanceOffset; // Offset: 0 Size: 16 // row_major float4x4 mVStoHS; // Offset: 16 Size: 64 // float4 ConservativeRasterSizePerMetre;// Offset: 80 Size: 16 // // } // // cbuffer TiledLightsCullInfoCB // { // // struct <unnamed> // { // // uint volumeType; // Offset: 0 // uint shadeInfoIndex; // Offset: 4 // float2 depthBounds; // Offset: 8 // float3 positionVS; // Offset: 16 // float radius; // Offset: 28 // float4 volumeParams0; // Offset: 32 // float4 volumeParams1; // Offset: 48 // float3 volumeParams2; // Offset: 64 // uint PADDING0; // Offset: 76 // // } TiledLightsCullInfoCB[2]; // Offset: 0 Size: 160 // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // PER_BATCH cbuffer NA NA 0 1 // TiledLightsCullInfoCB cbuffer NA NA 10 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // POSITION 0 xyzw 0 NONE float xyz // TEXCOORD 0 xyz 1 NONE float x // SV_InstanceID 0 x 2 INSTID uint x // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xyzw // LightID 0 x 1 NONE uint x // vs_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[6], immediateIndexed dcl_constantbuffer cb10[10], dynamicIndexed dcl_input v0.xyz dcl_input v1.x dcl_input_sgv v2.x, instance_id dcl_output_siv o0.xyzw, position dcl_output o1.x dcl_temps 5 lt r0.x, l(0.000000), v1.x iadd r0.y, v2.x, cb0[0].x imul null, r0.y, r0.y, l(5) mul r0.z, v0.x, cb10[r0.y + 3].w movc r1.x, r0.x, cb10[r0.y + 1].w, r0.z movc r2.x, r0.x, l(1.000000), l(-1.000000) mad r0.xz, cb10[r0.y + 3].zzzz, v0.xxxx, cb10[r0.y + 3].xxyx mul r1.yz, r0.xxzx, v0.yyzy mul r0.xzw, r1.zzxy, cb10[r0.y + 2].xxyz mad r0.xzw, cb10[r0.y + 2].zzxy, r1.xxyz, -r0.xxzw mad r0.xzw, cb10[r0.y + 2].wwww, r1.yyzx, r0.xxzw mul r3.xyz, r0.xzwx, cb10[r0.y + 2].zxyz mad r0.xzw, cb10[r0.y + 2].yyzx, r0.zzwx, -r3.xxyz mad r0.xzw, r0.xxzw, l(2.000000, 0.000000, 2.000000, 2.000000), r1.xxyz add r1.z, r0.w, -cb10[r0.y + 1].z add r1.xy, r0.xzxx, cb10[r0.y + 1].xyxx max r0.x, -r1.z, l(0.000000) mov r2.yz, v0.yyzy mul r3.xyz, r2.zxyz, cb10[r0.y + 2].xyzx mad r3.xyz, cb10[r0.y + 2].zxyz, r2.xyzx, -r3.xyzx mad r3.xyz, cb10[r0.y + 2].wwww, r2.yzxy, r3.xyzx mul r4.xyz, r3.xyzx, cb10[r0.y + 2].zxyz mad r3.xyz, cb10[r0.y + 2].yzxy, r3.yzxy, -r4.xyzx mov o1.x, cb10[r0.y + 0].y mad r0.yzw, r3.xxyz, l(0.000000, 2.000000, 2.000000, 2.000000), r2.xxyz mul r0.xyz, r0.xxxx, r0.yzwy mad r0.xyz, r0.xyzx, cb0[5].xxxx, r1.xyzx mul r1.xyzw, r0.yyyy, cb0[2].xyzw mad r1.xyzw, r0.xxxx, cb0[1].xyzw, r1.xyzw mad r0.xyzw, r0.zzzz, cb0[3].xyzw, r1.xyzw add o0.xyzw, r0.xyzw, cb0[4].xyzw ret // Approximately 32 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ [/code] Here is the code I think I can inject in here to fix it of course with different variables this is just a sample not the actual one I would stick in there: // Apply a stereo correction to the temporary register that holds a copy of the output position: float4 stereo = StereoParams.Load(0); r1.x += stereo.x * (r1.w - stereo.y); now I could think what goes where and whatnot but I would rather if some kind sould could explain what is what and how I would determine which variables go where.. It would be easy just to code it for me but I would like to grasp it for myself and to be honest I still not fully getting it.. I did have another post and it was broke down a bit what these variables where and that hhelped so something like that breakdown and maybe leave it so I should have to try and figure it out myself.. That would be greatly helpful. regards Nephilim'
OK will check the log file.. It is weird because a shader has the same error code thing and when I set the shader to disable it does not disable??

I will check different profiles to start with.. so back to square one..


EDIT: The first picture is what Star Citizen looks like with no shaders removed. you can see the light reflections from the top of the doors to the floor they are 2D there are quite a few.

The 2nd Picture shows with the shader removed to help give a better idea what is in the file I will post in a minute..

Now I looked at some others code and it seemed a little cryptic to me at least.. I tried injecting and changing it too what I thought it should be but it had no effect and at 1 point it seemed to have disabled the shader..

here is the code of the shader from the 2D Light reflections:


// ---- Created with 3Dmigoto v1.2.56 on Mon Mar 27 21:17:38 2017
// 2D light refelctions
cbuffer PER_BATCH : register(b0)
{
int4 InstanceOffset : packoffset(c0);
row_major float4x4 mVStoHS : packoffset(c1);
float4 ConservativeRasterSizePerMetre : packoffset(c5);
}

cbuffer TiledLightsCullInfoCB : register(b10)
{

struct
{
uint volumeType;
uint shadeInfoIndex;
float2 depthBounds;
float3 positionVS;
float radius;
float4 volumeParams0;
float4 volumeParams1;
float3 volumeParams2;
uint PADDING0;
} TiledLightsCullInfoCB[2] : packoffset(c0);

}



// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : POSITION0,
float3 v1 : TEXCOORD0,
uint v2 : SV_InstanceID0,
out float4 o0 : SV_Position0,
out uint o1 : LightID0)
{
// Needs manual fix for instruction:
// unknown dcl_: dcl_input_sgv v2.x, instance_id
float4 r0,r1,r2,r3,r4;
uint4 bitmask, uiDest;
float4 fDest;

r0.x = cmp(0 < v1.x);
r0.y = (int)v2.x + (int)InstanceOffset.x;
r0.y = (int)r0.y * 5;
r0.z = TiledLightsCullInfoCB[r0.y].volumeParams1.w * v0.x;
r1.x = r0.x ? TiledLightsCullInfoCB[r0.y].radius : r0.z;
r2.x = r0.x ? 1 : -1;
r0.xz = TiledLightsCullInfoCB[r0.y].volumeParams1.zz * v0.xx + TiledLightsCullInfoCB[r0.y].volumeParams1.xy;
r1.yz = v0.yz * r0.xz;
r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.xyz * r1.zxy;
r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r1.xyz + -r0.xzw;
r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.www * r1.yzx + r0.xzw;
r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r0.xzw;
r0.xzw = TiledLightsCullInfoCB[r0.y].volumeParams0.yzx * r0.zwx + -r3.xyz;
r0.xzw = r0.xzw * float3(2,2,2) + r1.xyz;
r1.z = -TiledLightsCullInfoCB[r0.y].positionVS.z + r0.w;
r1.xy = TiledLightsCullInfoCB[r0.y].positionVS.xy + r0.xz;
r0.x = max(0, -r1.z);
r2.yz = v0.yz;
r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.xyz * r2.zxy;
r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r2.xyz + -r3.xyz;
r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.www * r2.yzx + r3.xyz;
r4.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.zxy * r3.xyz;
r3.xyz = TiledLightsCullInfoCB[r0.y].volumeParams0.yzx * r3.yzx + -r4.xyz;
o1.x = TiledLightsCullInfoCB[r0.y].shadeInfoIndex;
r0.yzw = r3.xyz * float3(2,2,2) + r2.xyz;
r0.xyz = r0.yzw * r0.xxx;
r0.xyz = r0.xyz * ConservativeRasterSizePerMetre.xxx + r1.xyz;
r1.xyzw = mVStoHS._m10_m11_m12_m13 * r0.yyyy;
r1.xyzw = r0.xxxx * mVStoHS._m00_m01_m02_m03 + r1.xyzw;
r0.xyzw = r0.zzzz * mVStoHS._m20_m21_m22_m23 + r1.xyzw;
o0.xyzw = mVStoHS._m30_m31_m32_m33 + r0.xyzw;
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384
//
// using 3Dmigoto v1.2.56 on Mon Mar 27 21:17:38 2017
//
//
// Buffer Definitions:
//
// cbuffer PER_BATCH
// {
//
// int4 InstanceOffset; // Offset: 0 Size: 16
// row_major float4x4 mVStoHS; // Offset: 16 Size: 64
// float4 ConservativeRasterSizePerMetre;// Offset: 80 Size: 16
//
// }
//
// cbuffer TiledLightsCullInfoCB
// {
//
// struct <unnamed>
// {
//
// uint volumeType; // Offset: 0
// uint shadeInfoIndex; // Offset: 4
// float2 depthBounds; // Offset: 8
// float3 positionVS; // Offset: 16
// float radius; // Offset: 28
// float4 volumeParams0; // Offset: 32
// float4 volumeParams1; // Offset: 48
// float3 volumeParams2; // Offset: 64
// uint PADDING0; // Offset: 76
//
// } TiledLightsCullInfoCB[2]; // Offset: 0 Size: 160
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// PER_BATCH cbuffer NA NA 0 1
// TiledLightsCullInfoCB cbuffer NA NA 10 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyz
// TEXCOORD 0 xyz 1 NONE float x
// SV_InstanceID 0 x 2 INSTID uint x
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xyzw
// LightID 0 x 1 NONE uint x
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[6], immediateIndexed
dcl_constantbuffer cb10[10], dynamicIndexed
dcl_input v0.xyz
dcl_input v1.x
dcl_input_sgv v2.x, instance_id
dcl_output_siv o0.xyzw, position
dcl_output o1.x
dcl_temps 5
lt r0.x, l(0.000000), v1.x
iadd r0.y, v2.x, cb0[0].x
imul null, r0.y, r0.y, l(5)
mul r0.z, v0.x, cb10[r0.y + 3].w
movc r1.x, r0.x, cb10[r0.y + 1].w, r0.z
movc r2.x, r0.x, l(1.000000), l(-1.000000)
mad r0.xz, cb10[r0.y + 3].zzzz, v0.xxxx, cb10[r0.y + 3].xxyx
mul r1.yz, r0.xxzx, v0.yyzy
mul r0.xzw, r1.zzxy, cb10[r0.y + 2].xxyz
mad r0.xzw, cb10[r0.y + 2].zzxy, r1.xxyz, -r0.xxzw
mad r0.xzw, cb10[r0.y + 2].wwww, r1.yyzx, r0.xxzw
mul r3.xyz, r0.xzwx, cb10[r0.y + 2].zxyz
mad r0.xzw, cb10[r0.y + 2].yyzx, r0.zzwx, -r3.xxyz
mad r0.xzw, r0.xxzw, l(2.000000, 0.000000, 2.000000, 2.000000), r1.xxyz
add r1.z, r0.w, -cb10[r0.y + 1].z
add r1.xy, r0.xzxx, cb10[r0.y + 1].xyxx
max r0.x, -r1.z, l(0.000000)
mov r2.yz, v0.yyzy
mul r3.xyz, r2.zxyz, cb10[r0.y + 2].xyzx
mad r3.xyz, cb10[r0.y + 2].zxyz, r2.xyzx, -r3.xyzx
mad r3.xyz, cb10[r0.y + 2].wwww, r2.yzxy, r3.xyzx
mul r4.xyz, r3.xyzx, cb10[r0.y + 2].zxyz
mad r3.xyz, cb10[r0.y + 2].yzxy, r3.yzxy, -r4.xyzx
mov o1.x, cb10[r0.y + 0].y
mad r0.yzw, r3.xxyz, l(0.000000, 2.000000, 2.000000, 2.000000), r2.xxyz
mul r0.xyz, r0.xxxx, r0.yzwy
mad r0.xyz, r0.xyzx, cb0[5].xxxx, r1.xyzx
mul r1.xyzw, r0.yyyy, cb0[2].xyzw
mad r1.xyzw, r0.xxxx, cb0[1].xyzw, r1.xyzw
mad r0.xyzw, r0.zzzz, cb0[3].xyzw, r1.xyzw
add o0.xyzw, r0.xyzw, cb0[4].xyzw
ret
// Approximately 32 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


Here is the code I think I can inject in here to fix it of course with different variables this is just a sample not the actual one I would stick in there:


// Apply a stereo correction to the temporary register that holds a copy of the
output position:
float4 stereo = StereoParams.Load(0);
r1.x += stereo.x * (r1.w - stereo.y);


now I could think what goes where and whatnot but I would rather if some kind sould could explain what is what and how I would determine which variables go where..

It would be easy just to code it for me but I would like to grasp it for myself and to be honest I still not fully getting it..

I did have another post and it was broke down a bit what these variables where and that hhelped so something like that breakdown and maybe leave it so I should have to try and figure it out myself..

That would be greatly helpful.


regards
Nephilim'

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#7
Posted 03/27/2017 11:54 PM   
FFS give it up. Anything done at this time is just a waste, as it's officially been announced that they are moving to VulKan, as you already know. DSS is the only one that has had any real success with CryEngine. You can't seriously expect anyone to help you with this POS aborted game engine that they are currently using. CryEngine was fucked up enough on it's own . The Lumberyard and Star Engines are forks of CryEngine, which can't be a good thing for anyone trying to fix. If you really want to attempt anything with this, do yourself and everyone a favor and read everything that DSS has posted in regards to the CryEngine.
FFS give it up.

Anything done at this time is just a waste, as it's officially been announced that they are moving to VulKan, as you already know.

DSS is the only one that has had any real success with CryEngine.

You can't seriously expect anyone to help you with this POS aborted game engine that they are currently using.

CryEngine was fucked up enough on it's own .

The Lumberyard and Star Engines are forks of CryEngine, which can't be a good thing for anyone trying to fix.

If you really want to attempt anything with this, do yourself and everyone a favor and read everything that DSS has posted in regards to the CryEngine.

#8
Posted 03/28/2017 02:52 AM   
Well Like I said it was just basically something that maybe I could learn with.. I guess this is dead in the water but will go and try and finmd the links from DSS.. Thanx all I will retreat into the woodshed and labor by myself I guess.. Thnx anyway ;)
Well Like I said it was just basically something that maybe I could learn with.. I guess this is dead in the water but will go and try and finmd the links from DSS..

Thanx all I will retreat into the woodshed and labor by myself I guess..

Thnx anyway ;)

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#9
Posted 03/28/2017 03:17 AM   
Yah, sorry for being rude, I was just pointing out the futility in working on this since it's CryEngine based and not easy, in any sense. Let alone that the fact that anything that is done, will be for not, once the API swaps to Vulkan. Take a look at the wishlist, perhaps there is something on their that might pique your interest. Keep in mind that some of the games on there already have fixes in progress, but are stalled due to technical difficulties. So refer to the forums here to see the current status. Anyhow, I would avoid CryEngine, if I was starting out. I'm not a shaderhacker, but I follow the forums fairly closely and I'm think that others would agree with my assessment here. BTW: you can read about the use of CryEngine as a base for the forks, at these links https://forums.robertsspaceindustries.com/discussion/364217/lumberyard-for-those-interested https://aws.amazon.com/lumberyard/faq/
Yah, sorry for being rude, I was just pointing out the futility in working on this since it's CryEngine based and not easy, in any sense. Let alone that the fact that anything that is done, will be for not, once the API swaps to Vulkan.

Take a look at the wishlist, perhaps there is something on their that might pique your interest. Keep in mind that some of the games on there already have fixes in progress, but are stalled due to technical difficulties. So refer to the forums here to see the current status.

Anyhow, I would avoid CryEngine, if I was starting out. I'm not a shaderhacker, but I follow the forums fairly closely and I'm think that others would agree with my assessment here.

BTW: you can read about the use of CryEngine as a base for the forks, at these links

https://forums.robertsspaceindustries.com/discussion/364217/lumberyard-for-those-interested

https://aws.amazon.com/lumberyard/faq/

#10
Posted 03/28/2017 03:45 AM   
I was so excited for this game and backed early. Slowly but surely they have somehow managed to suck all the life out of it for me and this latest revelation regarding only vulkan support is final nail in the coffin for me.
I was so excited for this game and backed early. Slowly but surely they have somehow managed to suck all the life out of it for me and this latest revelation regarding only vulkan support is final nail in the coffin for me.

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)

#11
Posted 03/28/2017 10:16 AM   
[quote="necropants"]I was so excited for this game and backed early. Slowly but surely they have somehow managed to suck all the life out of it for me and this latest revelation regarding only vulkan support is final nail in the coffin for me.[/quote] I hear ya. Roberts always does this though, remember Freelancer? He gets an idea, gets a green light and then he keeps adding to it and changing it. He doesn't know when to stop. Freelancer still turned out to be a good game on release but it was nothing like he either originally or ultimately envisioned. I just want to play Squadron 42 now - why can't he release that as a proof of concept and then continue to work on his everything but the kitchen sink project afterwards.
necropants said:I was so excited for this game and backed early. Slowly but surely they have somehow managed to suck all the life out of it for me and this latest revelation regarding only vulkan support is final nail in the coffin for me.


I hear ya. Roberts always does this though, remember Freelancer? He gets an idea, gets a green light and then he keeps adding to it and changing it. He doesn't know when to stop. Freelancer still turned out to be a good game on release but it was nothing like he either originally or ultimately envisioned.

I just want to play Squadron 42 now - why can't he release that as a proof of concept and then continue to work on his everything but the kitchen sink project afterwards.

#12
Posted 03/28/2017 01:54 PM   
Hey D-Man11 that is OK I understand no sence in us getting mad at each other there are so few of us 3D Gamers we need to stick together. I am not mad Like I said I did just think it was a good test and learning more or less for me.. I did manage to get some things fixed in it and If I can figure out the shadow thing I think I pretty much got it.. But that is something I can toil with and yes I understand the futility but I did not know they where going Vulkan when I purchased it the other night and it was pretty high on the list for games to get done.. That is why I thought I would take a crack at it until I found out they where gonna switch to Vulkan.. Butr I figured since I just wasted 45USD I thought I would see IF I could fix it for the mean time.. I understand that it will be a waste but basically it is my time to waste.. IF no one wants to help me I understand just say so or don't answer my Questions as I would just love to figure out shadows on a Personnel level.. I can post some screenshots of my Progress and it really is not that bad but the most real problem is from the developers and the lack of control over the stuff they throw in there like Blur effects and such as there is ONLY a General level to set the detail.. Low, Med., High, Ultra High.. I will double check the wishlist and see what is going on over there then check here to see what is being worked on.. Thank you all. I still Love the idea of us fixing these games this is so cool.. And remember Please be kind to each other as we are a small group we don't need to Lose members over nonsensical stuff ;)
Hey D-Man11 that is OK I understand no sence in us getting mad at each other there are so few of us 3D Gamers we need to stick together. I am not mad Like I said I did just think it was a good test and learning more or less for me..

I did manage to get some things fixed in it and If I can figure out the shadow thing I think I pretty much got it.. But that is something I can toil with and yes I understand the futility but I did not know they where going Vulkan when I purchased it the other night and it was pretty high on the list for games to get done..

That is why I thought I would take a crack at it until I found out they where gonna switch to Vulkan.. Butr I figured since I just wasted 45USD I thought I would see IF I could fix it for the mean time.. I understand that it will be a waste but basically it is my time to waste..

IF no one wants to help me I understand just say so or don't answer my Questions as I would just love to figure out shadows on a Personnel level..

I can post some screenshots of my Progress and it really is not that bad but the most real problem is from the developers and the lack of control over the stuff they throw in there like Blur effects and such as there is ONLY a General level to set the detail.. Low, Med., High, Ultra High..

I will double check the wishlist and see what is going on over there then check here to see what is being worked on..

Thank you all. I still Love the idea of us fixing these games this is so cool.. And remember Please be kind to each other as we are a small group we don't need to Lose members over nonsensical stuff ;)

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#13
Posted 03/28/2017 05:47 PM   
You can check DarkStarSwords repository,. https://github.com/DarkStarSword/3d-fixes Ryse Son of Rome is the only dx11 game fixed using CryEngine and 3Dmigoto. http://helixmod.blogspot.com/2016/09/ryse-son-of-rome.html GL.
You can check DarkStarSwords repository,.


https://github.com/DarkStarSword/3d-fixes


Ryse Son of Rome is the only dx11 game fixed using CryEngine and 3Dmigoto.


http://helixmod.blogspot.com/2016/09/ryse-son-of-rome.html


GL.

#14
Posted 03/28/2017 10:02 PM   
Well I looked in that link to Ryse they did not fix the shadows there so I may be out of luck with Shadows but that is not too bad as it is really based in Outer space.. They don't look too broke but they are not stereoised either so I guess that is what is broke.. I am probally just gonna give this one up as I ran into a lot of brick walls.. Sorry Folks Vulkan ruined the day for 3D & Star Citizen.. :(
Well I looked in that link to Ryse they did not fix the shadows there so I may be out of luck with Shadows but that is not too bad as it is really based in Outer space..

They don't look too broke but they are not stereoised either so I guess that is what is broke..

I am probally just gonna give this one up as I ran into a lot of brick walls..

Sorry Folks Vulkan ruined the day for 3D & Star Citizen.. :(

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

#15
Posted 03/29/2017 05:48 AM   
  1 / 4    
Scroll To Top