3Dmigoto now open-source...
  64 / 143    
Just thought I'd mention this here also, I mentioned in another thread the DX10 version was brought up in but it most likely wasn't noticed... and now I can't even remember what the thread was for. Lol... the Zip file linked on the [url=https://github.com/bo3b/3Dmigoto/releases/tag/0.1.1-alpha]Experimental DX10 Release Build[/url] page is corrupt(?), I can't seem to get it to extract with anything I've tried.
Just thought I'd mention this here also, I mentioned in another thread the DX10 version was brought up in but it most likely wasn't noticed... and now I can't even remember what the thread was for. Lol... the Zip file linked on the Experimental DX10 Release Build page is corrupt(?), I can't seem to get it to extract with anything I've tried.
Posted 03/18/2016 03:31 PM   
[quote="DarkStarSword"] 1. You can copy the render target before and after the draw call, then discard any pixels that did not change. This may not be exact as there is a small chance that a pixel may be rendered the same colour that it was originally. [/quote] Thanks for your answers, but I am really not gifted... I tried this in d3dx.ini: [code][ShaderOverrideSu25TPS] Hash=1aa1765cd0ef3445 ResourceBefore = o0 post ResourceAfter = o0 [ShaderOverrideControl] Hash=6d4f5bb81c55393d ps-t100 = ResourceAfter ps-t101 = ResourceBefore [/code] But I did not see any differences when i display either t100 or t101 in 6d4f5bb81c55393d [quote="DarkStarSword"] 2. You can inject a simultaneous render target and write the information you need to it. You are responsible for clearing this render target (e.g. with a custom shader on the present call) [/quote] How can I do that ?
DarkStarSword said:
1. You can copy the render target before and after the draw call, then discard any pixels that did not change. This may not be exact as there is a small chance that a pixel may be rendered the same colour that it was originally.

Thanks for your answers, but I am really not gifted...
I tried this in d3dx.ini:
[ShaderOverrideSu25TPS]
Hash=1aa1765cd0ef3445
ResourceBefore = o0
post ResourceAfter = o0

[ShaderOverrideControl]
Hash=6d4f5bb81c55393d
ps-t100 = ResourceAfter
ps-t101 = ResourceBefore

But I did not see any differences when i display either t100 or t101 in 6d4f5bb81c55393d

DarkStarSword said:
2. You can inject a simultaneous render target and write the information you need to it. You are responsible for clearing this render target (e.g. with a custom shader on the present call)

How can I do that ?

Posted 03/18/2016 10:03 PM   
How can I set the size of a resource used as a render target and the custom shader to half of the screen resolution?
How can I set the size of a resource used as a render target and the custom shader to half of the screen resolution?

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

Posted 03/19/2016 01:38 PM   
The forum seems very quiet recently.
The forum seems very quiet recently.

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

Posted 03/20/2016 11:55 PM   
I'm on a business trip for the next two weeks and won't be able to look at anything in depth until I'm back.
I'm on a business trip for the next two weeks and won't be able to look at anything in depth until I'm back.

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 03/21/2016 08:12 PM   
[quote="DarkStarSword"]I'm on a business trip for the next two weeks and won't be able to look at anything in depth until I'm back.[/quote] I see, good luck then.
DarkStarSword said:I'm on a business trip for the next two weeks and won't be able to look at anything in depth until I'm back.


I see, good luck then.

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

Posted 03/21/2016 11:28 PM   
Ok, I had it, see enclosed picture...I finally found 2 pixel shaders output that I can substract in order to keep only cockpit frame. But I discovered that each plane use different piwel shader to draw cockpit, so it will not be wise to store and sample more than 20 texture to know if I had to write label or not... I must inject a pixelshader but I have to study how because my first try were not working...
Ok, I had it, see enclosed picture...I finally found 2 pixel shaders output that I can substract in order to keep only cockpit frame.
But I discovered that each plane use different piwel shader to draw cockpit, so it will not be wise to store and sample more than 20 texture to know if I had to write label or not...
I must inject a pixelshader but I have to study how because my first try were not working...

Posted 03/23/2016 09:38 PM   
My pixelshader injection tentative was unsuccessfull. What did I try : Add a PS call from VS 5615a6b843fa9027 which draw cockpit. When disabled with 3Dmigoto "skip" Highlight mode there is no cockpit drawn on screen. The PS is quite simple it paint the PS output in white [code] void main(float4 pos : SV_Position0, out float4 result : SV_Target0) { result = float4(1,1,1,1); }[/code] What I put in d3dx.ini: [code][ShaderOverrideCockpit] Hash=5615a6b843fa9027 run = CustomShaderCockpit [CustomShaderCockpit] ps = ShaderFixes\ps_output_white.hlsl Draw = from_caller [/code] For my test, I expected to have cockpit frame paint in white, but this is the opposite : the cockpit frame is still drawn, but all the surrounding is white ! (see picture). all tentative with o0 backup/restore did not change anything... Informations regarding the VS is ShaderUsage.txt [code]<VertexShader hash="5615a6b843fa9027"> <CalledPixelShaders>04c48bb8a6bbb2d2 0c46b20cad7e2a7f 0e39e5c8168bb9a3 1aa1765cd0ef3445 1d911c441efc3783 22bcecd86a0c820d 32a884c9f98b8879 44c5e263b42eaed7 44d90070b0b81f6d 45e2670d5113e68c 48d596cf1faa5bb6 4b987b8fcabf08ad 4d809007e0f9ed44 51d8250f9e3f2ee3 58120b0c4a87570d 5bbd1043e99f3acb 5f8fb9db3fb6d3a8 64e3cafe6918a888 69ac2315002cc3d1 72f1115f9fd835df 75ab9fb9db75d481 79a30f3d723c87c4 7da7e37308c40dae 86261038d53c892b a1221d7d6520b5ef a7f0e36f271101a2 a8518ea9ed3eb9be ad4cb099593d22e7 b7207ef0fef69ff9 b89773f77c33f5b6 ccf6cdf12a2d70cf d9c266be31011728 da55a5b3558c2e6f dd57694fefd273ae ea4ef741fb48cd57 eb840a3c850e69fc ee855da4dfc3032a faadcb5aa6086513 fc3891afb251117d </CalledPixelShaders>[/code]
My pixelshader injection tentative was unsuccessfull.
What did I try :
Add a PS call from VS 5615a6b843fa9027 which draw cockpit. When disabled with 3Dmigoto "skip" Highlight mode there is no cockpit drawn on screen.

The PS is quite simple it paint the PS output in white
void main(float4 pos : SV_Position0, out float4 result : SV_Target0)
{
result = float4(1,1,1,1);
}


What I put in d3dx.ini:
[ShaderOverrideCockpit]
Hash=5615a6b843fa9027
run = CustomShaderCockpit

[CustomShaderCockpit]
ps = ShaderFixes\ps_output_white.hlsl
Draw = from_caller


For my test, I expected to have cockpit frame paint in white, but this is the opposite : the cockpit frame is still drawn, but all the surrounding is white ! (see picture). all tentative with o0 backup/restore did not change anything...

Informations regarding the VS is ShaderUsage.txt
<VertexShader hash="5615a6b843fa9027">
<CalledPixelShaders>04c48bb8a6bbb2d2 0c46b20cad7e2a7f 0e39e5c8168bb9a3 1aa1765cd0ef3445 1d911c441efc3783 22bcecd86a0c820d 32a884c9f98b8879 44c5e263b42eaed7 44d90070b0b81f6d 45e2670d5113e68c 48d596cf1faa5bb6 4b987b8fcabf08ad 4d809007e0f9ed44 51d8250f9e3f2ee3 58120b0c4a87570d 5bbd1043e99f3acb 5f8fb9db3fb6d3a8 64e3cafe6918a888 69ac2315002cc3d1 72f1115f9fd835df 75ab9fb9db75d481 79a30f3d723c87c4 7da7e37308c40dae 86261038d53c892b a1221d7d6520b5ef a7f0e36f271101a2 a8518ea9ed3eb9be ad4cb099593d22e7 b7207ef0fef69ff9 b89773f77c33f5b6 ccf6cdf12a2d70cf d9c266be31011728 da55a5b3558c2e6f dd57694fefd273ae ea4ef741fb48cd57 eb840a3c850e69fc ee855da4dfc3032a faadcb5aa6086513 fc3891afb251117d </CalledPixelShaders>

Posted 03/25/2016 06:12 PM   
I still have another problem ! I am still working on substraction of two PS shader output. I used a game PS for trials and check but unfortunately it is not used in all conditions. So I tried to inject specific VS and PS shader, as described in previous posts. What I did : d3dx.ini: [code] [ResourceWater] ;here an example of output I want to draw (the common background to substract for complete cockpit output) [ShaderOverrideWater] Hash=9aab8271c8fd154d post ResourceWater = o0 ResourceBackupo0] [CustomShaderDebug] vs = ShaderFixes\full_screen.hlsl ps = ShaderFixes\output-t100.hlsl blend = disable ResourceBackupo0 = ref o0 o0 = bb ps-t101 = ref ResourceWater ps-t100 = bb Draw = 6, 0 post ps-t100 = null [Present] run = CustomShaderDebug [/code] VS full_screen.hlsl: [code] void main( out float4 pos : SV_Position0, uint vertex : SV_VertexID) { // Not using vertex buffers so manufacture our own coordinates. // You may have to adjust this depending on whether the game is using // clockwise or counterclockwise for front-facing surfaces: switch(vertex) { case 0: pos.xy = float2(1, -1); break; case 1: pos.xy = float2(-1, -1); break; case 2: pos.xy = float2(-1, 1); break; case 3: pos.xy = float2(-1, 1); break; case 4: pos.xy = float2(1, -1); break; case 5: pos.xy = float2(1, 1); break; default: pos.xy = 0; break; }; pos.zw = float2(0, 1); }[/code] PS output-t100.hlsl : [code] Texture2D<float4> t100 : register(t100); Texture2D<float4> t101 : register(t101); void main(float4 pos : SV_Position0, out float4 result : SV_Target0) { float flag; flag = 0; if (pos.x < 1920/3) { // if (flag == 0 ) { result = t101.Load(int3(pos.xy, 0)); } else { result = t100.Load(int3(pos.xy, 0)); // result.x += 0.5; } }[/code] I have a strange result : The display is as attended when in mission selection screen : The fisrt part of screen is black because the ResourceWater is not set. But when in cockpit view (that is when the 3D engine work), there is no fisrt part containing the ResourceWater output. And when I get back to mission selection screen the fisrt part contain the ResourceWater output ! I tried to make a screen copy, but it does not contain the fisrt part... Another thing that I do not understand is that I do not have the same behaviour of the game regarding the windows sessions. There is 2 PS shaders used for drawing the cockpit. Most of the time, the copy of o0 for the shader 22bcecd86a0c820d give the output of the 2 shaders, but some times it gives only the output of one...
I still have another problem !
I am still working on substraction of two PS shader output. I used a game PS for trials and check but unfortunately it is not used in all conditions. So I tried to inject specific VS and PS shader, as described in previous posts.
What I did :
d3dx.ini:
[ResourceWater]
;here an example of output I want to draw (the common background to substract for complete cockpit output)
[ShaderOverrideWater]
Hash=9aab8271c8fd154d
post ResourceWater = o0

ResourceBackupo0]

[CustomShaderDebug]
vs = ShaderFixes\full_screen.hlsl
ps = ShaderFixes\output-t100.hlsl
blend = disable
ResourceBackupo0 = ref o0
o0 = bb
ps-t101 = ref ResourceWater
ps-t100 = bb
Draw = 6, 0
post ps-t100 = null


[Present]
run = CustomShaderDebug


VS full_screen.hlsl:
void main(
out float4 pos : SV_Position0,
uint vertex : SV_VertexID)
{
// Not using vertex buffers so manufacture our own coordinates.
// You may have to adjust this depending on whether the game is using
// clockwise or counterclockwise for front-facing surfaces:
switch(vertex) {
case 0:
pos.xy = float2(1, -1);
break;
case 1:
pos.xy = float2(-1, -1);
break;
case 2:
pos.xy = float2(-1, 1);
break;
case 3:
pos.xy = float2(-1, 1);
break;
case 4:
pos.xy = float2(1, -1);
break;
case 5:
pos.xy = float2(1, 1);
break;
default:
pos.xy = 0;
break;
};
pos.zw = float2(0, 1);
}


PS output-t100.hlsl :
Texture2D<float4> t100 : register(t100);
Texture2D<float4> t101 : register(t101);

void main(float4 pos : SV_Position0, out float4 result : SV_Target0)
{
float flag;
flag = 0;
if (pos.x < 1920/3) {
// if (flag == 0 ) {
result = t101.Load(int3(pos.xy, 0));
} else {
result = t100.Load(int3(pos.xy, 0));
// result.x += 0.5;
}
}


I have a strange result :
The display is as attended when in mission selection screen : The fisrt part of screen is black because the ResourceWater is not set.
But when in cockpit view (that is when the 3D engine work), there is no fisrt part containing the ResourceWater output.
And when I get back to mission selection screen the fisrt part contain the ResourceWater output !
I tried to make a screen copy, but it does not contain the fisrt part...


Another thing that I do not understand is that I do not have the same behaviour of the game regarding the windows sessions.
There is 2 PS shaders used for drawing the cockpit. Most of the time, the copy of o0 for the shader 22bcecd86a0c820d give the output of the 2 shaders, but some times it gives only the output of one...

Posted 03/28/2016 08:36 AM   
Is it normal for the operation [code] [ResourceDepthFromTrees] [ShaderOverride-6fe65e2bd7d1b6a1] Hash = 6fe65e2bd7d1b6a1 ResourceDepthFromTrees = oD [/code] to consume 6-8% of GPU?
Is it normal for the operation

[ResourceDepthFromTrees]
[ShaderOverride-6fe65e2bd7d1b6a1]
Hash = 6fe65e2bd7d1b6a1
ResourceDepthFromTrees = oD

to consume 6-8% of GPU?

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

Posted 03/29/2016 12:33 PM   
How often does the 6fe65e2bd7d1b6a1 shader get used in the frame? If the answer is more than once, use max_copies_per_frame to limit it, or (if applicable) copy by reference. That operation will perform a full copy on the GPU evey time that shader is used in a draw operation, which can add up to a significant overhead if it occurs any more than necessary.
How often does the 6fe65e2bd7d1b6a1 shader get used in the frame? If the answer is more than once, use max_copies_per_frame to limit it, or (if applicable) copy by reference.

That operation will perform a full copy on the GPU evey time that shader is used in a draw operation, which can add up to a significant overhead if it occurs any more than necessary.

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 03/29/2016 03:06 PM   
What is the difference between a "normal" copy and a "by reference" copy ? If I copy o0 in a shader by reference, will it be different from o0 copied in another shader ? In which case should we use reference copy instead of copy ? I found that I had not the same results if I use o0 reference copy instead of normal copy. I keep the result which was in accordance with my need, but it was the normal copy.
What is the difference between a "normal" copy and a "by reference" copy ?
If I copy o0 in a shader by reference, will it be different from o0 copied in another shader ?
In which case should we use reference copy instead of copy ?
I found that I had not the same results if I use o0 reference copy instead of normal copy. I keep the result which was in accordance with my need, but it was the normal copy.

Posted 03/29/2016 05:59 PM   
[quote="lefuneste"]What is the difference between a "normal" copy and a "by reference" copy ?[/quote]For one thing, there is no "normal" copy - there is a full copy ("copy") and a copy by reference ("reference"). If you don't specify either 3DMigoto will try to guess which should work, but it errs on the side of trying to choose an option that should work, but won't necessarily be the best choice, and thanks to driver heuristics sometimes it still won't work quite as expected (in regards to copying a stereo/mono resource). [quote]If I copy o0 in a shader by reference, will it be different from o0 copied in another shader ?[/quote]I'm not clear on what you are asking here. o0 is a slot where a resource may (or may not) be bound at any time, and this can (and does) change several times throughout a frame. You can copy it by reference to get a pointer to whatever resource was bound in it at the time (which may later be unbound from o0 and used elsewhere - but if you copied it by reference you you still have a pointer to that same resource), or you may perform a full copy to create a new resource that looks the same as the resource in o0, but is a different resource to the one in o0. [quote]In which case should we use reference copy instead of copy ?[/quote]I can't answer that - the answer depends on the game and specific situation you are trying to solve (and sometimes the driver heuristics). [quote]I found that I had not the same results if I use o0 reference copy instead of normal copy. I keep the result which was in accordance with my need, but it was the normal copy.[/quote]You will often see different results - there are a bunch of factors at play. Sometimes your hand is forced if only one works, sometimes you may be able to choose. You might choose to use a full copy when, e.g.: - You are copying a resource that the game might later change and you DON'T want to see those changes (e.g. copying a constant buffer for the matrices used in a specific draw operation, as they are likely to be clobbered by a later draw operation) - You are copying a resource between different slot types (exception: if the game created the resource with certain bind flags it may be possible to copy it by reference in some cases) - You need to copy an output to an input (or vice versa) and have them bound simultaneously. You might choose to use a copy by reference when, e.g.: - A full copy is too expensive (alternative: max_copies_per_frame=1). I really can't emphasise enough - full copies are expensive, if it only happens once or twice in a frame you won't notice it, but if it happens 40 times you will see a dip in the fps (or at least, anyone who is GPU bound will), and if it happens 400 times the game may be unplayable. - You are grabbing a reference to a resource that you expect the game to update and you WANT to see those updates (e.g. grabbing a reference to the depth buffer before the game has finished drawing it for the frame) - Driver heuristics mess up a full copy and you only get a mono copy where you wanted a stereo copy (e.g. take a look at the debugging shaders in Far Cry Primal where a full copy of the fog volumes show them in mono, and a copy by reference show them in stereo). And of course keep in mind that if you use an intermediate resource there are copies both when copying to the intermediate resource, and again when copying from it - and you can use different combinations of full copy and copy by reference for both of those.
lefuneste said:What is the difference between a "normal" copy and a "by reference" copy ?
For one thing, there is no "normal" copy - there is a full copy ("copy") and a copy by reference ("reference"). If you don't specify either 3DMigoto will try to guess which should work, but it errs on the side of trying to choose an option that should work, but won't necessarily be the best choice, and thanks to driver heuristics sometimes it still won't work quite as expected (in regards to copying a stereo/mono resource).

If I copy o0 in a shader by reference, will it be different from o0 copied in another shader ?
I'm not clear on what you are asking here. o0 is a slot where a resource may (or may not) be bound at any time, and this can (and does) change several times throughout a frame. You can copy it by reference to get a pointer to whatever resource was bound in it at the time (which may later be unbound from o0 and used elsewhere - but if you copied it by reference you you still have a pointer to that same resource), or you may perform a full copy to create a new resource that looks the same as the resource in o0, but is a different resource to the one in o0.

In which case should we use reference copy instead of copy ?
I can't answer that - the answer depends on the game and specific situation you are trying to solve (and sometimes the driver heuristics).

I found that I had not the same results if I use o0 reference copy instead of normal copy. I keep the result which was in accordance with my need, but it was the normal copy.
You will often see different results - there are a bunch of factors at play. Sometimes your hand is forced if only one works, sometimes you may be able to choose.


You might choose to use a full copy when, e.g.:
- You are copying a resource that the game might later change and you DON'T want to see those changes (e.g. copying a constant buffer for the matrices used in a specific draw operation, as they are likely to be clobbered by a later draw operation)
- You are copying a resource between different slot types (exception: if the game created the resource with certain bind flags it may be possible to copy it by reference in some cases)
- You need to copy an output to an input (or vice versa) and have them bound simultaneously.

You might choose to use a copy by reference when, e.g.:
- A full copy is too expensive (alternative: max_copies_per_frame=1). I really can't emphasise enough - full copies are expensive, if it only happens once or twice in a frame you won't notice it, but if it happens 40 times you will see a dip in the fps (or at least, anyone who is GPU bound will), and if it happens 400 times the game may be unplayable.
- You are grabbing a reference to a resource that you expect the game to update and you WANT to see those updates (e.g. grabbing a reference to the depth buffer before the game has finished drawing it for the frame)
- Driver heuristics mess up a full copy and you only get a mono copy where you wanted a stereo copy (e.g. take a look at the debugging shaders in Far Cry Primal where a full copy of the fog volumes show them in mono, and a copy by reference show them in stereo).


And of course keep in mind that if you use an intermediate resource there are copies both when copying to the intermediate resource, and again when copying from it - and you can use different combinations of full copy and copy by reference for both of those.

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 03/29/2016 10:47 PM   
[quote="DarkStarSword"]How often does the 6fe65e2bd7d1b6a1 shader get used in the frame? If the answer is more than once, use max_copies_per_frame to limit it, or (if applicable) copy by reference. That operation will perform a full copy on the GPU evey time that shader is used in a draw operation, which can add up to a significant overhead if it occurs any more than necessary.[/quote] It's beeing called for each tree I suppose, but I found the same depth buffer in the sky shader which I'm sure is beeing called once. It's still expensive though, about 4-5% GPU I've set max_copies_per_frame=1 to be certain. Setting it by reference is giving me black screen unfortunately.
DarkStarSword said:How often does the 6fe65e2bd7d1b6a1 shader get used in the frame? If the answer is more than once, use max_copies_per_frame to limit it, or (if applicable) copy by reference.

That operation will perform a full copy on the GPU evey time that shader is used in a draw operation, which can add up to a significant overhead if it occurs any more than necessary.


It's beeing called for each tree I suppose, but I found the same depth buffer in the sky shader which I'm sure is beeing called once. It's still expensive though, about 4-5% GPU I've set max_copies_per_frame=1 to be certain. Setting it by reference is giving me black screen unfortunately.

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

Posted 03/30/2016 12:52 AM   
Would you guys please try to debug the issue with 3DM not running on AMD? I cannot release my mod when it's only working on nVidia.
Would you guys please try to debug the issue with 3DM not running on AMD? I cannot release my mod when it's only working on nVidia.

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

Posted 03/30/2016 10:56 PM   
  64 / 143    
Scroll To Top