3Dmigoto now open-source...
  97 / 143    
Btw, I've managed to fix the screen space reflections in my mod. Putting it all together now.
Btw, I've managed to fix the screen space reflections in my mod. Putting it all together now.

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/16/2017 09:15 AM   
Hmm... I'm getting an error in domain shader X3000: unrecognized identifier 'dcl_input_control_point_count' edit1: silly me, I forgot to change the filename by deleting _replace string. But still the shader in asm is not loading, am I missing something obvious? edit2: yeahh....this happens if you mess with the 3DM code without proper testing. It was my directory crawler loading only hlsl shaders. Fixed now. [code] // Water tesselation shore moving DS // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // using 3Dmigoto v1.2.63 on Sun Jul 16 09:20:53 2017 // // // Buffer Definitions: // // cbuffer $Globals // { // // float HDRRange; // Offset: 464 Size: 4 [unused] // float4x4 model; // Offset: 480 Size: 64 // float4x4 modelViewProj; // Offset: 544 Size: 64 // float2 AmbientLightMapScale; // Offset: 608 Size: 8 [unused] // float4x4 modelView; // Offset: 624 Size: 64 // float4x4 prevViewProj; // Offset: 688 Size: 64 [unused] // float4x4 prevModel; // Offset: 752 Size: 64 [unused] // float4 tesselationParams; // Offset: 816 Size: 16 // float4 normalParams1; // Offset: 832 Size: 16 // float4 normalParams2; // Offset: 848 Size: 16 // float4 normalParams3; // Offset: 864 Size: 16 [unused] // float4 normalParams4; // Offset: 880 Size: 16 // float timer; // Offset: 896 Size: 4 // float3 shoreColour; // Offset: 900 Size: 12 [unused] // float4 shoreParams1; // Offset: 912 Size: 16 [unused] // float3 shoreParams2; // Offset: 928 Size: 12 [unused] // float blendValue; // Offset: 940 Size: 4 [unused] // float4 specularParams; // Offset: 944 Size: 16 // float4 waveParams; // Offset: 960 Size: 16 // float4 interactiveParams2; // Offset: 976 Size: 16 // float4 interactiveParams3; // Offset: 992 Size: 16 // float4 interactiveParams4; // Offset: 1008 Size: 16 // float4 tesselationAmount; // Offset: 1024 Size: 16 [unused] // // } // // cbuffer CameraParamsConstantBuffer // { // // float4x4 projection; // Offset: 0 Size: 64 [unused] // float4x4 viewProjection; // Offset: 64 Size: 64 [unused] // row_major float3x4 view; // Offset: 128 Size: 48 [unused] // row_major float3x4 viewI; // Offset: 176 Size: 48 [unused] // float3 eyePositionWS; // Offset: 224 Size: 12 // float4x4 inverseProj; // Offset: 240 Size: 64 [unused] // bool leftEye; // Offset: 304 Size: 4 [unused] // bool padding3[3]; // Offset: 320 Size: 36 [unused] // // } // // cbuffer PerFrameConstantBuffer // { // // float4 colorBufferEncodingParams; // Offset: 0 Size: 16 [unused] // float4 envMapEncodingParams; // Offset: 16 Size: 16 [unused] // float4 velocityEncodingParams; // Offset: 32 Size: 16 [unused] // float4 snowEffectsParam2; // Offset: 48 Size: 16 [unused] // float4 sunDirectionAndTime; // Offset: 64 Size: 16 // float4 sunColour; // Offset: 80 Size: 16 [unused] // float4 skylightColour; // Offset: 96 Size: 16 [unused] // float4 ambientOcclusionScales; // Offset: 112 Size: 16 [unused] // float4 backlightColour; // Offset: 128 Size: 16 [unused] // float4 specularScales; // Offset: 144 Size: 16 [unused] // float3 specularDirection; // Offset: 160 Size: 12 [unused] // float4 specularColourAndMultiplier;// Offset: 176 Size: 16 [unused] // float4 fogColour; // Offset: 192 Size: 16 // float4 fogParams; // Offset: 208 Size: 16 // float4 hazeParams; // Offset: 224 Size: 16 // float4 hazeParams2; // Offset: 240 Size: 16 // float4 nightLightmapParam1; // Offset: 256 Size: 16 [unused] // float4 nightLightmapParam2; // Offset: 272 Size: 16 [unused] // float4 wetLightingParam; // Offset: 288 Size: 16 [unused] // float4 snowEffectsParam; // Offset: 304 Size: 16 [unused] // float4 ambientColour; // Offset: 320 Size: 16 [unused] // float4 shadowBlend; // Offset: 336 Size: 16 [unused] // float4 maskParams; // Offset: 352 Size: 16 [unused] // float4 deferredSpecularParams; // Offset: 368 Size: 16 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // TWaterRippleMap sampler NA NA 0 1 // TWaterRippleMap texture float4 2d 0 1 // $Globals cbuffer NA NA 0 1 // PerFrameConstantBuffer cbuffer NA NA 1 1 // CameraParamsConstantBuffer cbuffer NA NA 3 1 // // // // Patch Constant signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_TessFactor 0 x 0 TRIEDGE float // SV_TessFactor 1 x 1 TRIEDGE float // SV_TessFactor 2 x 2 TRIEDGE float // SV_InsideTessFactor 0 x 3 TRIINT float // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // WORLDPOS 0 xyzw 0 NONE float xyzw // NORMAL 0 xyz 1 NONE float xyz // TANGENT 0 xyz 2 NONE float xyz // BINORMAL 0 xyz 3 NONE float // COLOR 0 xyzw 4 NONE float x // TEXCOORD 0 xyzw 5 NONE float xy w // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Position 0 xyzw 0 POS float xyzw // COLOR 1 xyzw 1 NONE float xyzw // TEXCOORD 0 xyzw 2 NONE float xyzw // TEXCOORD 1 xyzw 3 NONE float xyzw // TEXCOORD 2 xyzw 4 NONE float xyzw // TEXCOORD 3 xyzw 5 NONE float xyzw // TEXCOORD 4 xyzw 6 NONE float xyzw // TEXCOORD 5 xyz 7 NONE float xyz // TEXCOORD 6 xyzw 8 NONE float xyzw // TEXCOORD 7 xyzw 9 NONE float xyzw // // Tessellation Domain # of control points // -------------------- -------------------- // Triangle 3 // ds_5_0 dcl_input_control_point_count 3 dcl_tessellator_domain domain_tri dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[64], immediateIndexed dcl_constantbuffer cb3[15], immediateIndexed dcl_constantbuffer cb1[16], immediateIndexed dcl_sampler s0, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_input vDomain.xyz dcl_input vicp[3][0].xyzw dcl_input vicp[3][1].xyz dcl_input vicp[3][2].xyz dcl_input vicp[3][4].x dcl_input vicp[3][5].xyw 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.xyzw dcl_output o7.xyz dcl_output o8.xyzw dcl_output o9.xyzw // viewPosition dcl_output o10.xyzw // normalVS dcl_output o11.xyz dcl_temps 7 mul r0.xyz, vDomain.xxxx, vicp[1][5].xywx mad r0.xyz, vicp[0][5].xywx, vDomain.zzzz, r0.xyzx mad r0.xyz, vicp[2][5].xywx, vDomain.yyyy, r0.xyzx sample_l_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyxx, t0.xyzw, s0, l(1.000000) add r1.yz, r1.yyzy, l(0.000000, 0.00196078443, 0.00196078443, 0.000000) mad r1.yz, r1.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) dp2 r0.w, r1.yzyy, r1.yzyy sqrt r0.w, r0.w mul r0.w, r0.w, r1.x mul r0.w, r0.w, cb0[51].y min r0.w, r0.w, cb0[51].x mul r0.z, r0.w, r0.z mov o9.xy, r0.xyxx mul r1.xyzw, vDomain.xxxx, vicp[1][0].xyzw mad r1.xyzw, vicp[0][0].xyzw, vDomain.zzzz, r1.xyzw mad r1.xyzw, vicp[2][0].xyzw, vDomain.yyyy, r1.xyzw mad r0.xyz, vicp[0][1].xyzx, r0.zzzz, r1.xyzx mul r2.xyzw, r0.yyyy, cb0[35].xyzw mad r2.xyzw, cb0[34].xyzw, r0.xxxx, r2.xyzw mad r2.xyzw, cb0[36].xyzw, r0.zzzz, r2.xyzw mad r2.xyzw, cb0[37].xyzw, r1.wwww, r2.xyzw mov o0.xyzw, r2.xyzw mul r1.xyz, r0.yyyy, cb0[31].xyzx mad r1.xyz, cb0[30].xyzx, r0.xxxx, r1.xyzx mad r1.xyz, cb0[32].xyzx, r0.zzzz, r1.xyzx mad r1.xyz, cb0[33].xyzx, r1.wwww, r1.xyzx add r3.xyz, r1.xyzx, -cb3[14].xyzx dp3 r0.w, r3.xyzx, r3.xyzx sqrt r0.w, r0.w div r3.xyz, r3.xyzx, r0.wwww dp3_sat r1.w, r3.xyzx, cb1[4].xyzx log r1.w, r1.w mul r1.w, r1.w, cb1[15].w exp r1.w, r1.w add r3.xyz, -cb1[14].xyzx, cb1[15].xyzx mad r3.xyz, r1.wwww, r3.xyzx, cb1[14].xyzx div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb1[13].z add r1.w, r0.w, -r1.w add r0.w, r0.w, l(-30.000000) mul_sat r0.w, r0.w, cb1[13].z mul r4.w, r0.w, cb1[13].w max r0.w, r1.w, l(0.000000) mul r0.w, r0.w, cb1[14].w mul r0.w, r0.w, l(1.442695) exp r0.w, r0.w add r3.w, -r0.w, l(1.000000) mov r4.xyz, cb1[12].xyzx add r5.xyzw, r3.xyzw, -r4.xyzw mad r3.xyzw, r3.wwww, r5.xyzw, r4.xyzw mul o1.xyz, r3.wwww, r3.xyzx add o1.w, -r3.w, l(1.000000) mul r3.xy, l(1.000000, -1.000000, 0.000000, 0.000000), cb0[61].wzww mul r3.xy, r3.xyxx, cb0[63].xxxx add r0.w, l(0.500000), cb0[56].x mul r3.xy, r3.xyxx, r0.wwww mul r3.zw, r1.xxxz, l(0.000000, 0.000000, 0.050000, 0.050000) mad r3.xy, r3.zwzz, cb0[63].xxxx, r3.xyxx mov o2.w, r3.x mov o3.w, r3.y mul r4.xyz, cb0[31].xyzx, vicp[0][1].yyyy mad r4.xyz, cb0[30].xyzx, vicp[0][1].xxxx, r4.xyzx mad r4.xyz, cb0[32].xyzx, vicp[0][1].zzzz, r4.xyzx dp3 r0.w, r4.xyzx, r4.xyzx rsq r0.w, r0.w mul r4.xyz, r0.wwww, r4.xyzx mov o2.xyz, r4.xyzx mul r5.xyz, cb0[31].xyzx, vicp[0][2].yyyy mad r5.xyz, cb0[30].xyzx, vicp[0][2].xxxx, r5.xyzx mad r5.xyz, cb0[32].xyzx, vicp[0][2].zzzz, r5.xyzx dp3 r0.w, r5.xyzx, r5.xyzx rsq r0.w, r0.w mul r5.xyz, r0.wwww, r5.xyzx mov o3.xyz, r5.xyzx mul r6.xyz, r4.zxyz, r5.yzxy mad r4.xyz, r4.yzxy, r5.zxyz, -r6.xyzx dp3 r0.w, r4.xyzx, r4.xyzx rsq r0.w, r0.w mul o4.xyz, r0.wwww, r4.xyzx mov o4.w, vicp[0][4].x add r4.xyzw, r1.xzxz, cb0[55].xyzw mov o7.xyz, r1.xyzx mul r1.xyzw, r4.xyzw, cb0[53].xxyy mul r1.xyzw, r1.xyzw, cb0[59].wwww mul o5.xyzw, r1.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000) mul r1.xy, r3.zwzz, cb0[59].wwww mul r1.zw, cb0[56].xxxx, cb0[60].xxxy mul r1.zw, r1.zzzw, cb0[52].zzzz mad o6.xy, r1.xyxx, cb0[53].zzzz, r1.zwzz mul r1.xy, cb0[61].zwzz, cb0[62].wwww mul r1.xy, r1.xyxx, cb0[56].xxxx mad o6.zw, r3.zzzw, cb0[62].wwww, r1.xxxy dp2 o8.x, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xwxx dp2 o8.y, l(0.500000, 0.500000, 0.000000, 0.000000), r2.ywyy mov o8.zw, r2.zzzw mul r0.y, r0.y, cb0[40].z mad r0.x, cb0[39].z, r0.x, r0.y mad r0.x, cb0[41].z, r0.z, r0.x add r0.x, r0.x, cb0[42].z mov o9.z, r0.x add r0.x, r0.x, cb0[59].z mul o9.w, r0.x, l(0.020000) // viewPosition mul r0.xyzw, v0.yyyy, cb0[40].xyzw mad r0.xyzw, cb0[39].xyzw, v0.xxxx, r0.xyzw mad r0.xyzw, cb0[41].xyzw, v0.zzzz, r0.xyzw mad o10.xyzw, cb0[42].xyzw, v0.wwww, r0.xyzw // normalVS mul r0.xyz, v1.yyyy, cb0[40].xyzx mad r0.xyz, cb0[39].xyzx, v1.xxxx, r0.xyzx mad o11.xyz, cb0[41].xyzx, v1.zzzz, r0.xyzx ret [/code]
Hmm... I'm getting an error in domain shader
X3000: unrecognized identifier 'dcl_input_control_point_count'

edit1: silly me, I forgot to change the filename by deleting _replace string. But still the shader in asm is not loading, am I missing something obvious?

edit2: yeahh....this happens if you mess with the 3DM code without proper testing. It was my directory crawler loading only hlsl shaders. Fixed now.

// Water tesselation shore moving DS 
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// using 3Dmigoto v1.2.63 on Sun Jul 16 09:20:53 2017
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float HDRRange; // Offset: 464 Size: 4 [unused]
// float4x4 model; // Offset: 480 Size: 64
// float4x4 modelViewProj; // Offset: 544 Size: 64
// float2 AmbientLightMapScale; // Offset: 608 Size: 8 [unused]
// float4x4 modelView; // Offset: 624 Size: 64
// float4x4 prevViewProj; // Offset: 688 Size: 64 [unused]
// float4x4 prevModel; // Offset: 752 Size: 64 [unused]
// float4 tesselationParams; // Offset: 816 Size: 16
// float4 normalParams1; // Offset: 832 Size: 16
// float4 normalParams2; // Offset: 848 Size: 16
// float4 normalParams3; // Offset: 864 Size: 16 [unused]
// float4 normalParams4; // Offset: 880 Size: 16
// float timer; // Offset: 896 Size: 4
// float3 shoreColour; // Offset: 900 Size: 12 [unused]
// float4 shoreParams1; // Offset: 912 Size: 16 [unused]
// float3 shoreParams2; // Offset: 928 Size: 12 [unused]
// float blendValue; // Offset: 940 Size: 4 [unused]
// float4 specularParams; // Offset: 944 Size: 16
// float4 waveParams; // Offset: 960 Size: 16
// float4 interactiveParams2; // Offset: 976 Size: 16
// float4 interactiveParams3; // Offset: 992 Size: 16
// float4 interactiveParams4; // Offset: 1008 Size: 16
// float4 tesselationAmount; // Offset: 1024 Size: 16 [unused]
//
// }
//
// cbuffer CameraParamsConstantBuffer
// {
//
// float4x4 projection; // Offset: 0 Size: 64 [unused]
// float4x4 viewProjection; // Offset: 64 Size: 64 [unused]
// row_major float3x4 view; // Offset: 128 Size: 48 [unused]
// row_major float3x4 viewI; // Offset: 176 Size: 48 [unused]
// float3 eyePositionWS; // Offset: 224 Size: 12
// float4x4 inverseProj; // Offset: 240 Size: 64 [unused]
// bool leftEye; // Offset: 304 Size: 4 [unused]
// bool padding3[3]; // Offset: 320 Size: 36 [unused]
//
// }
//
// cbuffer PerFrameConstantBuffer
// {
//
// float4 colorBufferEncodingParams; // Offset: 0 Size: 16 [unused]
// float4 envMapEncodingParams; // Offset: 16 Size: 16 [unused]
// float4 velocityEncodingParams; // Offset: 32 Size: 16 [unused]
// float4 snowEffectsParam2; // Offset: 48 Size: 16 [unused]
// float4 sunDirectionAndTime; // Offset: 64 Size: 16
// float4 sunColour; // Offset: 80 Size: 16 [unused]
// float4 skylightColour; // Offset: 96 Size: 16 [unused]
// float4 ambientOcclusionScales; // Offset: 112 Size: 16 [unused]
// float4 backlightColour; // Offset: 128 Size: 16 [unused]
// float4 specularScales; // Offset: 144 Size: 16 [unused]
// float3 specularDirection; // Offset: 160 Size: 12 [unused]
// float4 specularColourAndMultiplier;// Offset: 176 Size: 16 [unused]
// float4 fogColour; // Offset: 192 Size: 16
// float4 fogParams; // Offset: 208 Size: 16
// float4 hazeParams; // Offset: 224 Size: 16
// float4 hazeParams2; // Offset: 240 Size: 16
// float4 nightLightmapParam1; // Offset: 256 Size: 16 [unused]
// float4 nightLightmapParam2; // Offset: 272 Size: 16 [unused]
// float4 wetLightingParam; // Offset: 288 Size: 16 [unused]
// float4 snowEffectsParam; // Offset: 304 Size: 16 [unused]
// float4 ambientColour; // Offset: 320 Size: 16 [unused]
// float4 shadowBlend; // Offset: 336 Size: 16 [unused]
// float4 maskParams; // Offset: 352 Size: 16 [unused]
// float4 deferredSpecularParams; // Offset: 368 Size: 16 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// TWaterRippleMap sampler NA NA 0 1
// TWaterRippleMap texture float4 2d 0 1
// $Globals cbuffer NA NA 0 1
// PerFrameConstantBuffer cbuffer NA NA 1 1
// CameraParamsConstantBuffer cbuffer NA NA 3 1
//
//
//
// Patch Constant signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TessFactor 0 x 0 TRIEDGE float
// SV_TessFactor 1 x 1 TRIEDGE float
// SV_TessFactor 2 x 2 TRIEDGE float
// SV_InsideTessFactor 0 x 3 TRIINT float
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// WORLDPOS 0 xyzw 0 NONE float xyzw
// NORMAL 0 xyz 1 NONE float xyz
// TANGENT 0 xyz 2 NONE float xyz
// BINORMAL 0 xyz 3 NONE float
// COLOR 0 xyzw 4 NONE float x
// TEXCOORD 0 xyzw 5 NONE float xy w
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xyzw
// COLOR 1 xyzw 1 NONE float xyzw
// TEXCOORD 0 xyzw 2 NONE float xyzw
// TEXCOORD 1 xyzw 3 NONE float xyzw
// TEXCOORD 2 xyzw 4 NONE float xyzw
// TEXCOORD 3 xyzw 5 NONE float xyzw
// TEXCOORD 4 xyzw 6 NONE float xyzw
// TEXCOORD 5 xyz 7 NONE float xyz
// TEXCOORD 6 xyzw 8 NONE float xyzw
// TEXCOORD 7 xyzw 9 NONE float xyzw
//
// Tessellation Domain # of control points
// -------------------- --------------------
// Triangle 3
//
ds_5_0
dcl_input_control_point_count 3
dcl_tessellator_domain domain_tri
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[64], immediateIndexed
dcl_constantbuffer cb3[15], immediateIndexed
dcl_constantbuffer cb1[16], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input vDomain.xyz
dcl_input vicp[3][0].xyzw
dcl_input vicp[3][1].xyz
dcl_input vicp[3][2].xyz
dcl_input vicp[3][4].x
dcl_input vicp[3][5].xyw
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.xyzw
dcl_output o7.xyz
dcl_output o8.xyzw
dcl_output o9.xyzw
// viewPosition
dcl_output o10.xyzw
// normalVS
dcl_output o11.xyz
dcl_temps 7
mul r0.xyz, vDomain.xxxx, vicp[1][5].xywx
mad r0.xyz, vicp[0][5].xywx, vDomain.zzzz, r0.xyzx
mad r0.xyz, vicp[2][5].xywx, vDomain.yyyy, r0.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyxx, t0.xyzw, s0, l(1.000000)
add r1.yz, r1.yyzy, l(0.000000, 0.00196078443, 0.00196078443, 0.000000)
mad r1.yz, r1.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
dp2 r0.w, r1.yzyy, r1.yzyy
sqrt r0.w, r0.w
mul r0.w, r0.w, r1.x
mul r0.w, r0.w, cb0[51].y
min r0.w, r0.w, cb0[51].x
mul r0.z, r0.w, r0.z
mov o9.xy, r0.xyxx
mul r1.xyzw, vDomain.xxxx, vicp[1][0].xyzw
mad r1.xyzw, vicp[0][0].xyzw, vDomain.zzzz, r1.xyzw
mad r1.xyzw, vicp[2][0].xyzw, vDomain.yyyy, r1.xyzw
mad r0.xyz, vicp[0][1].xyzx, r0.zzzz, r1.xyzx
mul r2.xyzw, r0.yyyy, cb0[35].xyzw
mad r2.xyzw, cb0[34].xyzw, r0.xxxx, r2.xyzw
mad r2.xyzw, cb0[36].xyzw, r0.zzzz, r2.xyzw
mad r2.xyzw, cb0[37].xyzw, r1.wwww, r2.xyzw
mov o0.xyzw, r2.xyzw
mul r1.xyz, r0.yyyy, cb0[31].xyzx
mad r1.xyz, cb0[30].xyzx, r0.xxxx, r1.xyzx
mad r1.xyz, cb0[32].xyzx, r0.zzzz, r1.xyzx
mad r1.xyz, cb0[33].xyzx, r1.wwww, r1.xyzx
add r3.xyz, r1.xyzx, -cb3[14].xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
sqrt r0.w, r0.w
div r3.xyz, r3.xyzx, r0.wwww
dp3_sat r1.w, r3.xyzx, cb1[4].xyzx
log r1.w, r1.w
mul r1.w, r1.w, cb1[15].w
exp r1.w, r1.w
add r3.xyz, -cb1[14].xyzx, cb1[15].xyzx
mad r3.xyz, r1.wwww, r3.xyzx, cb1[14].xyzx
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb1[13].z
add r1.w, r0.w, -r1.w
add r0.w, r0.w, l(-30.000000)
mul_sat r0.w, r0.w, cb1[13].z
mul r4.w, r0.w, cb1[13].w
max r0.w, r1.w, l(0.000000)
mul r0.w, r0.w, cb1[14].w
mul r0.w, r0.w, l(1.442695)
exp r0.w, r0.w
add r3.w, -r0.w, l(1.000000)
mov r4.xyz, cb1[12].xyzx
add r5.xyzw, r3.xyzw, -r4.xyzw
mad r3.xyzw, r3.wwww, r5.xyzw, r4.xyzw
mul o1.xyz, r3.wwww, r3.xyzx
add o1.w, -r3.w, l(1.000000)
mul r3.xy, l(1.000000, -1.000000, 0.000000, 0.000000), cb0[61].wzww
mul r3.xy, r3.xyxx, cb0[63].xxxx
add r0.w, l(0.500000), cb0[56].x
mul r3.xy, r3.xyxx, r0.wwww
mul r3.zw, r1.xxxz, l(0.000000, 0.000000, 0.050000, 0.050000)
mad r3.xy, r3.zwzz, cb0[63].xxxx, r3.xyxx
mov o2.w, r3.x
mov o3.w, r3.y
mul r4.xyz, cb0[31].xyzx, vicp[0][1].yyyy
mad r4.xyz, cb0[30].xyzx, vicp[0][1].xxxx, r4.xyzx
mad r4.xyz, cb0[32].xyzx, vicp[0][1].zzzz, r4.xyzx
dp3 r0.w, r4.xyzx, r4.xyzx
rsq r0.w, r0.w
mul r4.xyz, r0.wwww, r4.xyzx
mov o2.xyz, r4.xyzx
mul r5.xyz, cb0[31].xyzx, vicp[0][2].yyyy
mad r5.xyz, cb0[30].xyzx, vicp[0][2].xxxx, r5.xyzx
mad r5.xyz, cb0[32].xyzx, vicp[0][2].zzzz, r5.xyzx
dp3 r0.w, r5.xyzx, r5.xyzx
rsq r0.w, r0.w
mul r5.xyz, r0.wwww, r5.xyzx
mov o3.xyz, r5.xyzx
mul r6.xyz, r4.zxyz, r5.yzxy
mad r4.xyz, r4.yzxy, r5.zxyz, -r6.xyzx
dp3 r0.w, r4.xyzx, r4.xyzx
rsq r0.w, r0.w
mul o4.xyz, r0.wwww, r4.xyzx
mov o4.w, vicp[0][4].x
add r4.xyzw, r1.xzxz, cb0[55].xyzw
mov o7.xyz, r1.xyzx
mul r1.xyzw, r4.xyzw, cb0[53].xxyy
mul r1.xyzw, r1.xyzw, cb0[59].wwww
mul o5.xyzw, r1.xyzw, l(0.050000, 0.050000, 0.050000, 0.050000)
mul r1.xy, r3.zwzz, cb0[59].wwww
mul r1.zw, cb0[56].xxxx, cb0[60].xxxy
mul r1.zw, r1.zzzw, cb0[52].zzzz
mad o6.xy, r1.xyxx, cb0[53].zzzz, r1.zwzz
mul r1.xy, cb0[61].zwzz, cb0[62].wwww
mul r1.xy, r1.xyxx, cb0[56].xxxx
mad o6.zw, r3.zzzw, cb0[62].wwww, r1.xxxy
dp2 o8.x, l(0.500000, 0.500000, 0.000000, 0.000000), r2.xwxx
dp2 o8.y, l(0.500000, 0.500000, 0.000000, 0.000000), r2.ywyy
mov o8.zw, r2.zzzw
mul r0.y, r0.y, cb0[40].z
mad r0.x, cb0[39].z, r0.x, r0.y
mad r0.x, cb0[41].z, r0.z, r0.x
add r0.x, r0.x, cb0[42].z
mov o9.z, r0.x
add r0.x, r0.x, cb0[59].z
mul o9.w, r0.x, l(0.020000)
// viewPosition
mul r0.xyzw, v0.yyyy, cb0[40].xyzw
mad r0.xyzw, cb0[39].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb0[41].xyzw, v0.zzzz, r0.xyzw
mad o10.xyzw, cb0[42].xyzw, v0.wwww, r0.xyzw
// normalVS
mul r0.xyz, v1.yyyy, cb0[40].xyzx
mad r0.xyz, cb0[39].xyzx, v1.xxxx, r0.xyzx
mad o11.xyz, cb0[41].xyzx, v1.zzzz, r0.xyzx
ret

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/16/2017 11:02 AM   
I need a little help in understanding the asm code for the tesselation in domain shader. viewPosition is working fine, but I'm having problems with normals. Do I also have to multiply normals by vDomain? When I do this I get a checkerboard pattern. [code]// viewPosition mul r1.xyzw, vicp[0][0].xyzw, vDomain.zzzz mad r1.xyzw, vicp[1][0].xyzw, vDomain.xxxx, r1.xyzw mad r1.xyzw, vicp[2][0].xyzw, vDomain.yyyy, r1.xyzw mov r0.xyz, r1.xyzw mul r2.xyzw, cb0[39].xyzw, r0.xxxx mad r2.xyzw, cb0[40].xyzw, r0.yyyy, r2.xyzw mad r2.xyzw, cb0[41].xyzw, r0.zzzz, r2.xyzw mad r2.xyzw, cb0[42].xyzw, r1.wwww, r2.xyzw mov o10.xyzw, r2.xyzw // normalVS mul r0.xyz, cb0[39].xyzx, vicp[0][1].xxxx mad r0.xyz, cb0[40].xyzx, vicp[1][1].yyyy, r0.xyzx mad o11.xyz, cb0[41].xyzx, vicp[2][1].zzzz, r0.xyzx[/code]
I need a little help in understanding the asm code for the tesselation in domain shader. viewPosition is working fine, but I'm having problems with normals. Do I also have to multiply normals by vDomain? When I do this I get a checkerboard pattern.


// viewPosition
mul r1.xyzw, vicp[0][0].xyzw, vDomain.zzzz
mad r1.xyzw, vicp[1][0].xyzw, vDomain.xxxx, r1.xyzw
mad r1.xyzw, vicp[2][0].xyzw, vDomain.yyyy, r1.xyzw
mov r0.xyz, r1.xyzw
mul r2.xyzw, cb0[39].xyzw, r0.xxxx
mad r2.xyzw, cb0[40].xyzw, r0.yyyy, r2.xyzw
mad r2.xyzw, cb0[41].xyzw, r0.zzzz, r2.xyzw
mad r2.xyzw, cb0[42].xyzw, r1.wwww, r2.xyzw
mov o10.xyzw, r2.xyzw

// normalVS
mul r0.xyz, cb0[39].xyzx, vicp[0][1].xxxx
mad r0.xyz, cb0[40].xyzx, vicp[1][1].yyyy, r0.xyzx
mad o11.xyz, cb0[41].xyzx, vicp[2][1].zzzz, r0.xyzx

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/16/2017 06:42 PM   
How can I change the opacity of this shader? Thanks [code]/ red light // ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:39:50 2017 Texture2D<float4> t4 : register(t4); Texture2D<float4> t3 : register(t3); Texture2D<float4> t2 : register(t2); Texture2D<float4> t1 : register(t1); Texture2D<float4> t0 : register(t0); SamplerState s4_s : register(s4); SamplerState s3_s : register(s3); SamplerState s2_s : register(s2); SamplerState s1_s : register(s1); SamplerState s0_s : register(s0); cbuffer cb1 : register(b1) { float4 cb1[8]; } cbuffer cb0 : register(b0) { float4 cb0[38]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : SV_POSITION0, float4 v1 : TEXCOORD0, float3 v2 : TEXCOORD1, out float4 o0 : SV_Target0) { float4 r0,r1,r2,r3,r4,r5,r6; uint4 bitmask, uiDest; float4 fDest; r0.xy = v1.xy / v1.ww; r0.xyzw = t0.Sample(s0_s, r0.xy).xyzw; r0.yzw = -cb1[4].xyz + v2.xyz; r1.x = dot(r0.yzw, r0.yzw); r1.x = sqrt(r1.x); r0.yzw = r0.yzw / r1.xxx; r1.yzw = r0.yzw * float3(0.00100000005,0.00100000005,0.00100000005) + v2.xyz; r2.x = dot(cb0[35].xyz, r0.yzw); r2.y = dot(cb0[35].xyz, r1.yzw); r2.y = cb0[37].x + r2.y; r2.y = -r2.y / r2.x; r2.z = cmp(r2.y < 0); r2.y = r2.z ? 100000 : r2.y; r1.yzw = -cb0[36].xyz + r1.yzw; r2.z = dot(r0.yzw, r0.yzw); r2.w = dot(r1.yzw, cb0[35].xyz); r3.x = dot(r1.yzw, r0.yzw); r1.y = dot(r1.yzw, r1.yzw); r1.z = cb0[34].z * cb0[34].z; r1.w = r2.z * r1.z; r1.w = r2.x * r2.x + -r1.w; r2.z = r3.x * r1.z; r2.z = r2.w * r2.x + -r2.z; r2.z = r2.z + r2.z; r1.y = r1.y * r1.z; r1.y = r2.w * r2.w + -r1.y; r1.y = r1.y * r1.w; r1.y = 4 * r1.y; r1.y = r2.z * r2.z + -r1.y; r1.z = cmp(0 < r1.y); r3.y = sqrt(r1.y); r1.y = cmp(0 < r1.w); r3.z = cmp(r1.w < 0); r1.y = (int)-r1.y + (int)r3.z; r1.y = (int)r1.y; r3.x = -r3.y; r3.xy = r1.yy * r3.xy + -r2.zz; r1.y = r1.w + r1.w; r1.yw = r3.xy / r1.yy; r2.xz = r2.xx * r1.yw + r2.ww; r2.xz = cmp(float2(0,0) < r2.xz); r3.xy = cmp(float2(0,0) < r1.yw); r2.xz = r2.xz ? r3.xy : 0; r3.xy = r2.xz ? float2(1,1) : 0; r2.xz = r2.xz ? float2(0,0) : float2(10000,10000); r1.yw = r1.yw * r3.xy + r2.xz; r1.yz = r1.zz ? r1.yw : float2(10000,10000); r0.x = cb1[7].z * r0.x + cb1[7].w; r0.x = 1 / r0.x; r1.w = dot(cb0[28].xyz, r0.yzw); r0.x = r0.x / r1.w; r0.x = r0.x + -r1.x; r1.x = min(r1.y, r1.z); r1.x = min(r2.y, r1.x); r0.x = min(r1.x, r0.x); r1.xy = v0.xy / cb0[11].zw; r1.z = dot(cb1[0].xy, float2(12.9898005,78.2330017)); r1.z = sin(r1.z); r1.z = 43758.5469 * r1.z; r1.z = frac(r1.z); r1.xy = r1.xy + r1.zz; r1.xyzw = t1.Sample(s3_s, r1.xy).xyzw; r1.x = r1.x * 2 + -1; r1.x = max(-1, r1.x); r1.x = min(1, r1.x); r1.y = asint(cb0[34].y); r0.x = r0.x / r1.y; r1.yzw = r0.yzw * r0.xxx; r1.xyz = r1.yzw * r1.xxx + v2.xyz; r2.xyz = cb1[4].xyz + -r1.xyz; r1.w = dot(r2.xyz, r2.xyz); r1.w = sqrt(r1.w); r1.w = cb0[29].y * r1.w; r1.w = 0.5 * r1.w; r2.x = cb0[29].x * r0.x; r2.yzw = float3(0,0,0); r3.xyzw = r1.xyzw; r4.x = 0; while (true) { r4.y = cmp((int)r4.x >= asint(cb0[34].y)); if (r4.y != 0) break; r4.yzw = cb0[4].xyz + -r3.xyz; r5.xyz = cb0[21].xyw * r3.yyy; r5.xyz = cb0[20].xyw * r3.xxx + r5.xyz; r5.xyz = cb0[22].xyw * r3.zzz + r5.xyz; r5.xyz = cb0[23].xyw + r5.xyz; r5.xy = r5.xy / r5.zz; r6.xyzw = t2.SampleBias(s2_s, r5.xy, -8).xyzw; r5.x = cmp(r5.z < 0); r5.x = r5.x ? 1.000000 : 0; r5.x = r6.w * r5.x; r4.y = dot(r4.yzw, r4.yzw); r4.y = cb0[4].w * r4.y; r6.xyzw = t3.Sample(s1_s, r4.yy).xyzw; r4.y = r6.x * r5.x; r5.xyzw = cb0[25].xyzw * r3.yyyy; r5.xyzw = cb0[24].xyzw * r3.xxxx + r5.xyzw; r5.xyzw = cb0[26].xyzw * r3.zzzz + r5.xyzw; r5.xyzw = cb0[27].xyzw + r5.xyzw; r5.xyz = r5.xyz / r5.www; r6.xyzw = t4.Sample(s4_s, r5.xy).xyzw; r4.z = cmp(r6.x < r5.z); r4.z = r4.z ? 1.000000 : 0; r4.y = r4.y * r4.z; r3.w = cb0[29].y * r0.x + r3.w; r4.y = r4.y * r2.x; r4.z = -1.44269502 * r3.w; r4.z = exp2(r4.z); r4.y = r4.y * r4.z; r5.xyz = -cb0[4].xyz + r3.xyz; r4.z = dot(r5.xyz, r5.xyz); r4.z = rsqrt(r4.z); r5.xyz = r5.xyz * r4.zzz; r4.z = dot(r5.xyz, -r0.yzw); r4.z = -cb0[30].z * r4.z + cb0[30].y; r4.z = log2(r4.z); r4.z = 1.5 * r4.z; r4.z = exp2(r4.z); r4.z = cb0[30].x / r4.z; r4.z = cb0[30].w * r4.z; r2.yzw = r4.yyy * r4.zzz + r2.yzw; r3.xyz = r0.yzw * r0.xxx + r3.xyz; r4.x = (int)r4.x + 1; } r0.xyz = cb0[5].xyz * r2.yzw; o0.xyz = max(float3(0,0,0), r0.xyz); // float3 values change colour o0.w = 0; return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //[/code]
How can I change the opacity of this shader? Thanks
/ red light
// ---- Created with 3Dmigoto v1.2.62 on Sun Jul 16 13:39:50 2017
Texture2D<float4> t4 : register(t4);

Texture2D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s4_s : register(s4);

SamplerState s3_s : register(s3);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

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

cbuffer cb0 : register(b0)
{
float4 cb0[38];
}




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


void main(
float4 v0 : SV_POSITION0,
float4 v1 : TEXCOORD0,
float3 v2 : TEXCOORD1,
out float4 o0 : SV_Target0)
{
float4 r0,r1,r2,r3,r4,r5,r6;
uint4 bitmask, uiDest;
float4 fDest;

r0.xy = v1.xy / v1.ww;
r0.xyzw = t0.Sample(s0_s, r0.xy).xyzw;
r0.yzw = -cb1[4].xyz + v2.xyz;
r1.x = dot(r0.yzw, r0.yzw);
r1.x = sqrt(r1.x);
r0.yzw = r0.yzw / r1.xxx;
r1.yzw = r0.yzw * float3(0.00100000005,0.00100000005,0.00100000005) + v2.xyz;
r2.x = dot(cb0[35].xyz, r0.yzw);
r2.y = dot(cb0[35].xyz, r1.yzw);
r2.y = cb0[37].x + r2.y;
r2.y = -r2.y / r2.x;
r2.z = cmp(r2.y < 0);
r2.y = r2.z ? 100000 : r2.y;
r1.yzw = -cb0[36].xyz + r1.yzw;
r2.z = dot(r0.yzw, r0.yzw);
r2.w = dot(r1.yzw, cb0[35].xyz);
r3.x = dot(r1.yzw, r0.yzw);
r1.y = dot(r1.yzw, r1.yzw);
r1.z = cb0[34].z * cb0[34].z;
r1.w = r2.z * r1.z;
r1.w = r2.x * r2.x + -r1.w;
r2.z = r3.x * r1.z;
r2.z = r2.w * r2.x + -r2.z;
r2.z = r2.z + r2.z;
r1.y = r1.y * r1.z;
r1.y = r2.w * r2.w + -r1.y;
r1.y = r1.y * r1.w;
r1.y = 4 * r1.y;
r1.y = r2.z * r2.z + -r1.y;
r1.z = cmp(0 < r1.y);
r3.y = sqrt(r1.y);
r1.y = cmp(0 < r1.w);
r3.z = cmp(r1.w < 0);
r1.y = (int)-r1.y + (int)r3.z;
r1.y = (int)r1.y;
r3.x = -r3.y;
r3.xy = r1.yy * r3.xy + -r2.zz;
r1.y = r1.w + r1.w;
r1.yw = r3.xy / r1.yy;
r2.xz = r2.xx * r1.yw + r2.ww;
r2.xz = cmp(float2(0,0) < r2.xz);
r3.xy = cmp(float2(0,0) < r1.yw);
r2.xz = r2.xz ? r3.xy : 0;
r3.xy = r2.xz ? float2(1,1) : 0;
r2.xz = r2.xz ? float2(0,0) : float2(10000,10000);
r1.yw = r1.yw * r3.xy + r2.xz;
r1.yz = r1.zz ? r1.yw : float2(10000,10000);
r0.x = cb1[7].z * r0.x + cb1[7].w;
r0.x = 1 / r0.x;
r1.w = dot(cb0[28].xyz, r0.yzw);
r0.x = r0.x / r1.w;
r0.x = r0.x + -r1.x;
r1.x = min(r1.y, r1.z);
r1.x = min(r2.y, r1.x);
r0.x = min(r1.x, r0.x);
r1.xy = v0.xy / cb0[11].zw;
r1.z = dot(cb1[0].xy, float2(12.9898005,78.2330017));
r1.z = sin(r1.z);
r1.z = 43758.5469 * r1.z;
r1.z = frac(r1.z);
r1.xy = r1.xy + r1.zz;
r1.xyzw = t1.Sample(s3_s, r1.xy).xyzw;
r1.x = r1.x * 2 + -1;
r1.x = max(-1, r1.x);
r1.x = min(1, r1.x);
r1.y = asint(cb0[34].y);
r0.x = r0.x / r1.y;
r1.yzw = r0.yzw * r0.xxx;
r1.xyz = r1.yzw * r1.xxx + v2.xyz;
r2.xyz = cb1[4].xyz + -r1.xyz;
r1.w = dot(r2.xyz, r2.xyz);
r1.w = sqrt(r1.w);
r1.w = cb0[29].y * r1.w;
r1.w = 0.5 * r1.w;
r2.x = cb0[29].x * r0.x;
r2.yzw = float3(0,0,0);
r3.xyzw = r1.xyzw;
r4.x = 0;
while (true) {
r4.y = cmp((int)r4.x >= asint(cb0[34].y));
if (r4.y != 0) break;
r4.yzw = cb0[4].xyz + -r3.xyz;
r5.xyz = cb0[21].xyw * r3.yyy;
r5.xyz = cb0[20].xyw * r3.xxx + r5.xyz;
r5.xyz = cb0[22].xyw * r3.zzz + r5.xyz;
r5.xyz = cb0[23].xyw + r5.xyz;
r5.xy = r5.xy / r5.zz;
r6.xyzw = t2.SampleBias(s2_s, r5.xy, -8).xyzw;
r5.x = cmp(r5.z < 0);
r5.x = r5.x ? 1.000000 : 0;
r5.x = r6.w * r5.x;
r4.y = dot(r4.yzw, r4.yzw);
r4.y = cb0[4].w * r4.y;
r6.xyzw = t3.Sample(s1_s, r4.yy).xyzw;
r4.y = r6.x * r5.x;
r5.xyzw = cb0[25].xyzw * r3.yyyy;
r5.xyzw = cb0[24].xyzw * r3.xxxx + r5.xyzw;
r5.xyzw = cb0[26].xyzw * r3.zzzz + r5.xyzw;
r5.xyzw = cb0[27].xyzw + r5.xyzw;
r5.xyz = r5.xyz / r5.www;
r6.xyzw = t4.Sample(s4_s, r5.xy).xyzw;
r4.z = cmp(r6.x < r5.z);
r4.z = r4.z ? 1.000000 : 0;
r4.y = r4.y * r4.z;
r3.w = cb0[29].y * r0.x + r3.w;
r4.y = r4.y * r2.x;
r4.z = -1.44269502 * r3.w;
r4.z = exp2(r4.z);
r4.y = r4.y * r4.z;
r5.xyz = -cb0[4].xyz + r3.xyz;
r4.z = dot(r5.xyz, r5.xyz);
r4.z = rsqrt(r4.z);
r5.xyz = r5.xyz * r4.zzz;
r4.z = dot(r5.xyz, -r0.yzw);
r4.z = -cb0[30].z * r4.z + cb0[30].y;
r4.z = log2(r4.z);
r4.z = 1.5 * r4.z;
r4.z = exp2(r4.z);
r4.z = cb0[30].x / r4.z;
r4.z = cb0[30].w * r4.z;
r2.yzw = r4.yyy * r4.zzz + r2.yzw;
r3.xyz = r0.yzw * r0.xxx + r3.xyz;
r4.x = (int)r4.x + 1;
}
r0.xyz = cb0[5].xyz * r2.yzw;
o0.xyz = max(float3(0,0,0), r0.xyz); // float3 values change colour
o0.w = 0;
return;
}

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

Posted 07/19/2017 06:45 PM   
If the shader does not react to changing the o0.w register it means that the blending state of the output merger is not Alpha. You would need to copy it as a custom shader and modify it's OM blending state. There is an article of how to do it on the 3DM wiki page.
If the shader does not react to changing the o0.w register it means that the blending state of the output merger is not Alpha. You would need to copy it as a custom shader and modify it's OM blending state. There is an article of how to do it on the 3DM wiki page.

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 07/19/2017 11:29 PM   
[quote="Oomek"]If the shader does not react to changing the o0.w register it means that the blending state of the output merger is not Alpha. You would need to copy it as a custom shader and modify it's OM blending state. There is an article of how to do it on the 3DM wiki page.[/quote] Thanks!!! I will try it tomorrow.
Oomek said:If the shader does not react to changing the o0.w register it means that the blending state of the output merger is not Alpha. You would need to copy it as a custom shader and modify it's OM blending state. There is an article of how to do it on the 3DM wiki page.


Thanks!!! I will try it tomorrow.

Posted 07/20/2017 12:12 AM   
Sorry for doing it late, bo3b. I have tried 3Dmigoto-1.0.1 with PCSX2. It doesn't hook in any way. And this time it doesn't even generate a log file even when trying to load it through Kaldaien's SpecialK. debug=1 and unbuffered=1 didn't help.
Sorry for doing it late, bo3b. I have tried 3Dmigoto-1.0.1 with PCSX2. It doesn't hook in any way. And this time it doesn't even generate a log file even when trying to load it through Kaldaien's SpecialK. debug=1 and unbuffered=1 didn't help.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

Posted 07/20/2017 08:49 PM   
Could anyone here make 3Dmigoto work with Media Player Classic? I'm using MadVR and I selected the DX11 renderer for fullscreen. 3D Vision triggers and the glasses work, but same situation as PCSX2: it doesn't seem to hook. No logs generated either. I want to make it work to convert SBS and TAB videos to 3D Vision, so I won't depend on those other stereoscopic players that I don't like.
Could anyone here make 3Dmigoto work with Media Player Classic? I'm using MadVR and I selected the DX11 renderer for fullscreen. 3D Vision triggers and the glasses work, but same situation as PCSX2: it doesn't seem to hook. No logs generated either.

I want to make it work to convert SBS and TAB videos to 3D Vision, so I won't depend on those other stereoscopic players that I don't like.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

Posted 07/21/2017 04:15 PM   
EDIT: nevermind figured it out
EDIT: nevermind figured it out

1080 Ti - i7 5820k - 16Gb RAM - Win 10 version 1607 - ASUS VG236H (1920x1080@120Hz)

Posted 07/22/2017 01:24 PM   
deleted
deleted

Posted 07/24/2017 08:22 AM   
How can I use 3Dmigoto Upscaling + Reshade + SuperDepth ? I can't understand how I can run 3Dmigoto Line Interlaced at the moment with upscaling. I changed couple of line that are upscaling, I added resolution . I choose custom3D 6 Line Interlaced, trying to switch 3D mode with F11 doesn't work, it says Stereo Enabled but there is no blur . using Acer EDID with LG55C6 TV Trying BladeStorm Nightmare
How can I use 3Dmigoto Upscaling + Reshade + SuperDepth ?

I can't understand how I can run 3Dmigoto Line Interlaced at the moment with upscaling. I changed couple of line that are upscaling, I added resolution . I choose custom3D 6 Line Interlaced, trying to switch 3D mode with F11 doesn't work, it says Stereo Enabled but there is no blur . using Acer EDID with LG55C6 TV

Trying BladeStorm Nightmare

AMD TR4 1950x @ 4.0
GA X399 AORUS Gaming 7 F12e
Gskill FlareX 32GB 4x 3200 14-14-14
INNO3D Nvidia GeForce GTX1080 8G D5 1759Mhz iChill X3 CSM Enabled
Creative SXFI AMP / USB SoundCard
SanDisk Extreme PRO SSD 480Gb
Samsung x2 1TB 7200
WD Gold 6TB Enterprise 128MB Cache (WD6002FRYZ)
Seagate 5TB Enterprise 128MB Cache (ST5000NM0024)
LG OLED55E6 3D TV 50.30.30
Logitech G502 Proteus - LGS Installed
Logitech G903
Logitech G502 Hero
Corsair Gaming K70 RED RAPIDFIRE Mechanical Keyboard
Windows 10 x64 1809 UEFI Boot

DreamScreenTV LEDs https://www.dreamscreentv.com/

Posted 07/30/2017 05:51 PM   
Hi, can a Depth Buffer be scaled the same way as the Wbuffer from the example DSS gave in this post? [url]https://github.com/bo3b/3Dmigoto/issues/53#issuecomment-263806573[/url] It does not seem to work properly, It downscales but the red channel of a colour buffer instead of a DB [code] [ResourceDepthBuffer] [ResourceDepthBufferHalf] width_multiply = 0.5 height_multiply = 0.5 [CustomShaderDownsampleDB] vs = ShaderFixes\downsampleDB.vs.hlsl ps = ShaderFixes\downsampleDB.ps.hlsl blend = disable cull = none topology = triangle_strip ResourceDepthBufferHalf = copy_desc ResourceDepthBuffer o0 = ref ResourceDepthBufferHalf ps-t100 = ref ResourceDepthBuffer draw = 4, 0 post ps-t100 = null [ShaderOverride-5fb7805badf885b7] Hash = 5fb7805badf885b7 ResourceDepthBuffer = copy oD post run = CustomShaderDownsampleDB [ShaderOverride-2e73a7906782429e] hash = 2e73a7906782429e ps-t102 = ResourceDepthBufferHalf [/code] [code] Texture2D<float> t100 : register(t100); void main(float4 pos : SV_Position0, out float result : SV_Target0) { float x = pos.x * 2; float y = pos.y * 2; result = t100.Load(float3(x + 0, y + 0, 0)); result = min(result,t100.Load(float3(x + 1, y + 0, 0))); result = min(result,t100.Load(float3(x + 0, y + 1, 0))); result = min(result,t100.Load(float3(x + 1, y + 1, 0))); } [/code] Here's the error I'm getting on each frame: [code] RecreateCompatibleTexture: Creating cached resource Resource copy RecreateCompatibleTexture failed: 0x80070057 Resource Type = Texture2D Width = 480 Height = 495 MipLevels = 1 ArraySize = 1 Format = R24G8_TYPELESS (44) SampleDesc.Count = 1 SampleDesc.Quality = 0 Usage = 0 BindFlags = 0x28 CPUAccessFlags = 0x0 MiscFlags = 0x0 Original resource was: Resource Type = Texture2D Width = 961 Height = 991 MipLevels = 1 ArraySize = 1 Format = R24G8_TYPELESS (44) SampleDesc.Count = 1 SampleDesc.Quality = 0 Usage = 0 BindFlags = 0x8 CPUAccessFlags = 0x0 MiscFlags = 0x0 Resource copy error: Could not create/update destination resource [/code]
Hi, can a Depth Buffer be scaled the same way as the Wbuffer from the example DSS gave in this post?

https://github.com/bo3b/3Dmigoto/issues/53#issuecomment-263806573

It does not seem to work properly, It downscales but the red channel of a colour buffer instead of a DB

[ResourceDepthBuffer]

[ResourceDepthBufferHalf]
width_multiply = 0.5
height_multiply = 0.5

[CustomShaderDownsampleDB]
vs = ShaderFixes\downsampleDB.vs.hlsl
ps = ShaderFixes\downsampleDB.ps.hlsl
blend = disable
cull = none
topology = triangle_strip

ResourceDepthBufferHalf = copy_desc ResourceDepthBuffer
o0 = ref ResourceDepthBufferHalf
ps-t100 = ref ResourceDepthBuffer
draw = 4, 0

post ps-t100 = null

[ShaderOverride-5fb7805badf885b7]
Hash = 5fb7805badf885b7
ResourceDepthBuffer = copy oD
post run = CustomShaderDownsampleDB

[ShaderOverride-2e73a7906782429e]
hash = 2e73a7906782429e
ps-t102 = ResourceDepthBufferHalf



Texture2D<float> t100 : register(t100);

void main(float4 pos : SV_Position0, out float result : SV_Target0)
{
float x = pos.x * 2;
float y = pos.y * 2;

result = t100.Load(float3(x + 0, y + 0, 0));
result = min(result,t100.Load(float3(x + 1, y + 0, 0)));
result = min(result,t100.Load(float3(x + 0, y + 1, 0)));
result = min(result,t100.Load(float3(x + 1, y + 1, 0)));
}



Here's the error I'm getting on each frame:
RecreateCompatibleTexture: Creating cached resource
Resource copy RecreateCompatibleTexture failed: 0x80070057
Resource Type = Texture2D
Width = 480
Height = 495
MipLevels = 1
ArraySize = 1
Format = R24G8_TYPELESS (44)
SampleDesc.Count = 1
SampleDesc.Quality = 0
Usage = 0
BindFlags = 0x28
CPUAccessFlags = 0x0
MiscFlags = 0x0
Original resource was:
Resource Type = Texture2D
Width = 961
Height = 991
MipLevels = 1
ArraySize = 1
Format = R24G8_TYPELESS (44)
SampleDesc.Count = 1
SampleDesc.Quality = 0
Usage = 0
BindFlags = 0x8
CPUAccessFlags = 0x0
MiscFlags = 0x0
Resource copy error: Could not create/update destination resource

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 08/04/2017 10:39 AM   
I'm looking at the fix for the Witcher 3, but I can not understand where the [ResourceWBuffer] resource is geting the depth buffer from. It's not initialised anywhere.
I'm looking at the fix for the Witcher 3, but I can not understand where the [ResourceWBuffer] resource is geting the depth buffer from. It's not initialised anywhere.

EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64

Posted 08/04/2017 01:55 PM   
I think the problem here may be that X24X8 formats are not compatible with being used as a render target? The original resource' bind flags indicate it was only used as a shader resource, but your new resource wants to be used as both a shader resource and a render target, but is otherwise unchanged. DirectX has all these undocumented quirks that we only find out through trial and error and this smells like yet another of those. I think your best bet is to try using the resource as a depth target instead of a render target, which should set bind flags that DirectX is happy with - you can still use oDepth to write to it from a pixel shader. I doubt it will work, but you might try making the resource fully typed just to see if that satisfies DirectX - try adding format=R24_UNORM_X8_TYPELESS to your [CustomResource] section. I'd be quite surprised if that works, but you never know - DirectX is weird. Or, maybe it will work if you use separate resources for the render target vs shader resource and copy between them as needed - I'm not positive that will work (I kind of doubt it will), it depends on exactly what DirectX isn't happy about. A bit more explanation of what 3DMigoto is doing under the hood: The type 3DMigoto selects automatically depends on how it is used - assign it as a depth target and 3DMigoto will use D24S8 to access both depth and stencil buffers, assign it as a render target, shader resource or UAV and 3DMigoto will use R24X8 to access the depth buffer (there is currently no way to have 3DMigoto use X24G8 to access the stencil buffer in that scenario... send a feature request if you ever need that). To enable a single resource to be used as both a depth/stencil buffer and shader resource/render target/UAV (at different times), 3DMigoto tries to use fully TYPELESS formats (R24G8_TYPELESS in this case) for the underlying resources, and only assigns a real type when it is bound to the pipeline, depending on where it was bound - if 3DMigoto used a real type for the underlying resource it would be restricted to assigning it in only slots that support that specific format, making it impossible to assign depth buffers into texture slots without copying them into another resource first.
I think the problem here may be that X24X8 formats are not compatible with being used as a render target? The original resource' bind flags indicate it was only used as a shader resource, but your new resource wants to be used as both a shader resource and a render target, but is otherwise unchanged. DirectX has all these undocumented quirks that we only find out through trial and error and this smells like yet another of those.

I think your best bet is to try using the resource as a depth target instead of a render target, which should set bind flags that DirectX is happy with - you can still use oDepth to write to it from a pixel shader.

I doubt it will work, but you might try making the resource fully typed just to see if that satisfies DirectX - try adding format=R24_UNORM_X8_TYPELESS to your [CustomResource] section. I'd be quite surprised if that works, but you never know - DirectX is weird.

Or, maybe it will work if you use separate resources for the render target vs shader resource and copy between them as needed - I'm not positive that will work (I kind of doubt it will), it depends on exactly what DirectX isn't happy about.

A bit more explanation of what 3DMigoto is doing under the hood:

The type 3DMigoto selects automatically depends on how it is used - assign it as a depth target and 3DMigoto will use D24S8 to access both depth and stencil buffers, assign it as a render target, shader resource or UAV and 3DMigoto will use R24X8 to access the depth buffer (there is currently no way to have 3DMigoto use X24G8 to access the stencil buffer in that scenario... send a feature request if you ever need that).

To enable a single resource to be used as both a depth/stencil buffer and shader resource/render target/UAV (at different times), 3DMigoto tries to use fully TYPELESS formats (R24G8_TYPELESS in this case) for the underlying resources, and only assigns a real type when it is bound to the pipeline, depending on where it was bound - if 3DMigoto used a real type for the underlying resource it would be restricted to assigning it in only slots that support that specific format, making it impossible to assign depth buffers into texture slots without copying them into another resource first.

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 08/04/2017 05:15 PM   
[quote="Oomek"]I'm looking at the fix for the Witcher 3, but I can not understand where the [ResourceWBuffer] resource is geting the depth buffer from. It's not initialised anywhere.[/quote] [code] [CustomShaderDownscaleWBuffer] ... ResourceWBuffer = ref o0 ... [ShaderOverrideHBAODepthPass] ; First post-processing shader used. Good place to turn on extra dumping ; options as most broken effects will be after this point. Hash = 170486ed36efcc9e ; This can be expensive in SLI at high resolutions: ;post ResourceWBufferStereo2Mono = stereo2mono o0 ; So we use this instead to downscale the WBuffer first: post run = CustomShaderDownscaleWBuffer [/code] That's what's in the git repo at the moment - I haven't checked if Helifax has made any changes since then. Worth noting though that the "W Buffer" is *NOT* a depth buffer. It is in the logical sense that it has depth values, but not in the DirectX sense that it is something using a D*S* format assigned to a depth/stencil target that is used for depth and/or stencil tests and holds logarithmic depth values. It is just a generic render target that the game (or more precisely, nvidia's ambient occlusion shader) has written linear depth values to.
Oomek said:I'm looking at the fix for the Witcher 3, but I can not understand where the [ResourceWBuffer] resource is geting the depth buffer from. It's not initialised anywhere.

[CustomShaderDownscaleWBuffer]
...
ResourceWBuffer = ref o0

...

[ShaderOverrideHBAODepthPass]
; First post-processing shader used. Good place to turn on extra dumping
; options as most broken effects will be after this point.
Hash = 170486ed36efcc9e
; This can be expensive in SLI at high resolutions:
;post ResourceWBufferStereo2Mono = stereo2mono o0
; So we use this instead to downscale the WBuffer first:
post run = CustomShaderDownscaleWBuffer

That's what's in the git repo at the moment - I haven't checked if Helifax has made any changes since then.

Worth noting though that the "W Buffer" is *NOT* a depth buffer. It is in the logical sense that it has depth values, but not in the DirectX sense that it is something using a D*S* format assigned to a depth/stencil target that is used for depth and/or stencil tests and holds logarithmic depth values. It is just a generic render target that the game (or more precisely, nvidia's ambient occlusion shader) has written linear depth values to.

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 08/04/2017 05:19 PM   
  97 / 143    
Scroll To Top