3Dmigoto now open-source...
  45 / 143    
[quote="DHR"]@DarkStarSword With this version now we can change for example convergence or separation depending on the scene? automatic? If is Yes...this is AWESOME!...how to use it? [quote]v1.2.19 adds a 'condition' option to [Key] sections to allow them to be conditional on an IniParam for use with scene detection.[/quote][/quote]Scene detection is only partially implemented at the moment, and automatically setting the convergence is one of the major parts that is still missing. Currently all it can do is set an IniParam from a ShaderOverride and/or TextureOverride* section (e.g. with "x=1"), which can then be checked by a shader run later in the frame. They aren't cleared automatically at the start of the frame, but the [Present] section is useful to do that. The condition I've added to key sections can work with this to enable/disable a convergence key binding based on an IniParam - in FC4 I use this to detect when the climbing rope shader is present in the scene and disable the aiming convergence preset since it looks a bit weird if that happens while descending the rope. I now have a pretty good idea of how the final few pieces will need to come together to set the convergence automatically - I just need to find some time to code it up. If you want to have a look at what I'm thinking (or have any suggestions) I've put a bit of a brain dump in this feature request: https://github.com/bo3b/3Dmigoto/issues/33 * using this feature from a TextureOverride section requires a checktextureoverride=ps-t0 or similar in the corresponding shader for performance reasons.
DHR said:@DarkStarSword

With this version now we can change for example convergence or separation depending on the scene? automatic?
If is Yes...this is AWESOME!...how to use it?

v1.2.19 adds a 'condition' option to [Key] sections to allow them to be conditional on an IniParam for use with scene detection.
Scene detection is only partially implemented at the moment, and automatically setting the convergence is one of the major parts that is still missing.

Currently all it can do is set an IniParam from a ShaderOverride and/or TextureOverride* section (e.g. with "x=1"), which can then be checked by a shader run later in the frame. They aren't cleared automatically at the start of the frame, but the [Present] section is useful to do that.

The condition I've added to key sections can work with this to enable/disable a convergence key binding based on an IniParam - in FC4 I use this to detect when the climbing rope shader is present in the scene and disable the aiming convergence preset since it looks a bit weird if that happens while descending the rope.

I now have a pretty good idea of how the final few pieces will need to come together to set the convergence automatically - I just need to find some time to code it up. If you want to have a look at what I'm thinking (or have any suggestions) I've put a bit of a brain dump in this feature request:

https://github.com/bo3b/3Dmigoto/issues/33


* using this feature from a TextureOverride section requires a checktextureoverride=ps-t0 or similar in the corresponding shader for performance reasons.

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 12/21/2015 03:30 PM   
I actually try to do it this way (the inverse the way you do it with the rope in FC4 **BTW fantastic Update**)....and of course don't work, because you explanation. I need the feature :) in Hitman Absolution, when you hide in dumpers or similar, i need a lower convergence....and also when using the sniper (with another low convergence value). Right now i have presets, but with this feature will be automatic. d3dx.ini: [code]; Hide Mode [Key5] Key = I convergence = 0.5 ; Enable when Hide, lower the convergence condition = w3 [ShaderOverrideWhenHide] Hash = 4ba609f73be52005 checktextureoverride = ps-t0 [TextureOverrideHide] Hash = f33e1840 w3 = 1 [Present] w3 = 0[/code]
I actually try to do it this way (the inverse the way you do it with the rope in FC4 **BTW fantastic Update**)....and of course don't work, because you explanation.

I need the feature :) in Hitman Absolution, when you hide in dumpers or similar, i need a lower convergence....and also when using the sniper (with another low convergence value). Right now i have presets, but with this feature will be automatic.

d3dx.ini:
; Hide Mode
[Key5]
Key = I
convergence = 0.5
; Enable when Hide, lower the convergence
condition = w3

[ShaderOverrideWhenHide]
Hash = 4ba609f73be52005
checktextureoverride = ps-t0

[TextureOverrideHide]
Hash = f33e1840
w3 = 1


[Present]
w3 = 0

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

Posted 12/21/2015 03:54 PM   
I would like to ask about the syntax of assigning multiple "partner" pixel shaders to a single vertex shader override in the d3dx.ini file? If I'm doing it the following way then only the last one is evaluated: [code][ShaderOverride1] Hash=92c0081b1529bca4 partner=2d97af187d677634 [ShaderOverride2] Hash=92c0081b1529bca4 partner=55839b09faca96f8 [/code] Also, I would like to ask about the keyword "Iteration" used in the texture filtering. What is this feature good for, and from which release it is supported? My last question is how do I know the hash of the currently marked index buffer? I'm trying to export it with numpad 9 but nothing happens. Thank you!
I would like to ask about the syntax of assigning multiple "partner" pixel shaders to a single vertex shader override in the d3dx.ini file?
If I'm doing it the following way then only the last one is evaluated:

[ShaderOverride1]
Hash=92c0081b1529bca4
partner=2d97af187d677634

[ShaderOverride2]
Hash=92c0081b1529bca4
partner=55839b09faca96f8


Also, I would like to ask about the keyword "Iteration" used in the texture filtering. What is this feature good for, and from which release it is supported?

My last question is how do I know the hash of the currently marked index buffer? I'm trying to export it with numpad 9 but nothing happens.

Thank you!

Posted 12/22/2015 02:45 PM   
I had a new problem with DCS world ([url=http://www.digitalcombatsimulator.com/en/downloads/world/2.0/]free alpha version[/url]). The 3Dmigoto library itself introduced errors into some smoke effects (at least), see picture. the marker smoke should be red, its color change with the point of view... I did not introduce modified shaders. I used the default d3dx.ini, and made some try with different 3Dmigoto versions. I also tried to change different options in d3dx.ini without success The problem occurs even in 2D mode. I enclosed the dumped pixel and vertex shader used for the smoke (.zip renamed into.zip.bmp). The register t125 is used by DCS and by 3Dmigoto in the PS shader. Is it possible than it is creating the problem ? [code]Texture2D<float4> skyTex2 : register(t125); // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); [/code] Is it possible to change the register used for StereoParams ?
I had a new problem with DCS world (free alpha version).
The 3Dmigoto library itself introduced errors into some smoke effects (at least), see picture. the marker smoke should be red, its color change with the point of view...
I did not introduce modified shaders. I used the default d3dx.ini, and made some try with different 3Dmigoto versions. I also tried to change different options in d3dx.ini without success
The problem occurs even in 2D mode.
I enclosed the dumped pixel and vertex shader used for the smoke (.zip renamed into.zip.bmp).
The register t125 is used by DCS and by 3Dmigoto in the PS shader. Is it possible than it is creating the problem ?
Texture2D<float4> skyTex2 : register(t125);


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


Is it possible to change the register used for StereoParams ?

Posted 12/22/2015 09:48 PM   
[quote="lefuneste"]The register t125 is used by DCS and by 3Dmigoto in the PS shader. Is it possible than it is creating the problem ?[/quote]I was wondering how long it would take to find a DX11 game that used that register - at the moment it is not possible to change the StereoParams register, but should be fairly straight forward to allow that, so I'll add it as a high priority item on my TODO list and you can expect an update in the next couple of days to allow it. Just to check - is the smoke broken even when ShaderFixes is completely empty, or only after starting to dump some shaders? (if it's the later it could be a decompiler issue instead) Edit: Another issue along similar lines that certain games may hit when 3D is enabled in the control panel (nothing to do with 3DMigoto) is that constant buffer 12 in the vertex shader is replaced with stereo parameters from the driver. If anyone ever runs into this I would expect that there might be some driver setting to change it, but I don't know what.
lefuneste said:The register t125 is used by DCS and by 3Dmigoto in the PS shader. Is it possible than it is creating the problem ?
I was wondering how long it would take to find a DX11 game that used that register - at the moment it is not possible to change the StereoParams register, but should be fairly straight forward to allow that, so I'll add it as a high priority item on my TODO list and you can expect an update in the next couple of days to allow it.

Just to check - is the smoke broken even when ShaderFixes is completely empty, or only after starting to dump some shaders? (if it's the later it could be a decompiler issue instead)

Edit: Another issue along similar lines that certain games may hit when 3D is enabled in the control panel (nothing to do with 3DMigoto) is that constant buffer 12 in the vertex shader is replaced with stereo parameters from the driver. If anyone ever runs into this I would expect that there might be some driver setting to change it, but I don't know what.

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 12/23/2015 01:22 AM   
[quote="toomyxp"]I would like to ask about the syntax of assigning multiple "partner" pixel shaders to a single vertex shader override in the d3dx.ini file? If I'm doing it the following way then only the last one is evaluated:[/quote]That's the old basic form of partner filtering, but for this you will need to use the advanced form. What you actually want to do is define sections for each of the possible partner shaders and assign a value to one of the IniParams for the duration of the draw call, that you can then check from within the shaders to see which partner is active: [code] [ShaderOverridePS1] Hash=2d97af187d677634 w = 1 post w = 0 [ShaderOverridePS2] Hash=55839b09faca96f8 w = 2 post w = 0 [/code] That sets w to 1 or 2 at the start of the draw call, then clears it back to 0 afterwards. You can use any of the IniParams for this, not just w, and you can set it to the same value from multiple shaders if the vertex shader will do the same thing for several of them. In the vertex shader you would check it like this: [code] float partner = IniParams.Load(0).w; if (partner == 1) { // 2d97af187d677634 is active, do whatever is needed } else if (partner == 2) { // 55839b09faca96f8 is active, do whatever is needed } [/code] [quote]Also, I would like to ask about the keyword "Iteration" used in the texture filtering. What is this feature good for, and from which release it is supported?[/quote]There are iteration keywords in both TextureOverride and ShaderOverride sections. The later has been broken for a long time, but I believe the former should still be working (but have not tested it... ever). It is for use with overriding a render target creation mode, format, width and/or height for when a game creates multiple identical textures and you only want to force the creation mode of one of them. I can think of a possible use for this in Unity games that use a particular volumetric light shaft effect which create two identical render targets, one of which must be stereo and the other mono - but since Unity creates and destroys those on demand I doubt this would work reliably for it (or would only work for the first light shaft loaded). [quote]My last question is how do I know the hash of the currently marked index buffer? I'm trying to export it with numpad 9 but nothing happens.[/quote]It should be in the log file, but I was trying this the other day and it didn't seem to be working, so it may have been broken at some point (I did not investigate further as texture filtering served my needs at the time). Note that currently index buffer filtering is pretty limited - it can only be used to skip shaders when the filter is not matched. It also does not take the offset into the index buffer or the number of indices used in the draw call into consderation, meaning it might match more that you bargained for as index buffers may have information for multiple objects in them. At some point I want to expand the texture filtering code to work with index buffers as well and address these limitations.
toomyxp said:I would like to ask about the syntax of assigning multiple "partner" pixel shaders to a single vertex shader override in the d3dx.ini file?
If I'm doing it the following way then only the last one is evaluated:
That's the old basic form of partner filtering, but for this you will need to use the advanced form. What you actually want to do is define sections for each of the possible partner shaders and assign a value to one of the IniParams for the duration of the draw call, that you can then check from within the shaders to see which partner is active:

[ShaderOverridePS1]
Hash=2d97af187d677634
w = 1
post w = 0

[ShaderOverridePS2]
Hash=55839b09faca96f8
w = 2
post w = 0


That sets w to 1 or 2 at the start of the draw call, then clears it back to 0 afterwards. You can use any of the IniParams for this, not just w, and you can set it to the same value from multiple shaders if the vertex shader will do the same thing for several of them. In the vertex shader you would check it like this:

float partner = IniParams.Load(0).w;
if (partner == 1) {
// 2d97af187d677634 is active, do whatever is needed
} else if (partner == 2) {
// 55839b09faca96f8 is active, do whatever is needed
}


Also, I would like to ask about the keyword "Iteration" used in the texture filtering. What is this feature good for, and from which release it is supported?
There are iteration keywords in both TextureOverride and ShaderOverride sections. The later has been broken for a long time, but I believe the former should still be working (but have not tested it... ever). It is for use with overriding a render target creation mode, format, width and/or height for when a game creates multiple identical textures and you only want to force the creation mode of one of them.

I can think of a possible use for this in Unity games that use a particular volumetric light shaft effect which create two identical render targets, one of which must be stereo and the other mono - but since Unity creates and destroys those on demand I doubt this would work reliably for it (or would only work for the first light shaft loaded).

My last question is how do I know the hash of the currently marked index buffer? I'm trying to export it with numpad 9 but nothing happens.
It should be in the log file, but I was trying this the other day and it didn't seem to be working, so it may have been broken at some point (I did not investigate further as texture filtering served my needs at the time).

Note that currently index buffer filtering is pretty limited - it can only be used to skip shaders when the filter is not matched. It also does not take the offset into the index buffer or the number of indices used in the draw call into consderation, meaning it might match more that you bargained for as index buffers may have information for multiple objects in them. At some point I want to expand the texture filtering code to work with index buffers as well and address these limitations.

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 12/23/2015 01:55 AM   
[quote="DarkStarSword"]at the moment it is not possible to change the StereoParams register, but should be fairly straight forward to allow that, so I'll add it as a high priority item on my TODO list and you can expect an update in the next couple of days to allow it.[/quote] Thanks a lot! [quote="DarkStarSword"]Just to check - is the smoke broken even when ShaderFixes is completely empty, or only after starting to dump some shaders? [/quote] Yes, only the 3dmigoto lib with ShaderFixes dir completely empty is enough to make the shader fail.
DarkStarSword said:at the moment it is not possible to change the StereoParams register, but should be fairly straight forward to allow that, so I'll add it as a high priority item on my TODO list and you can expect an update in the next couple of days to allow it.

Thanks a lot!

DarkStarSword said:Just to check - is the smoke broken even when ShaderFixes is completely empty, or only after starting to dump some shaders?

Yes, only the 3dmigoto lib with ShaderFixes dir completely empty is enough to make the shader fail.

Posted 12/23/2015 08:08 AM   
Thank you DarkStar for the detailed answer! I've already tested and all of them work as you described, I even found the indexbuffer hash in the log. I think I'm using an older release of 3DMigoto.
Thank you DarkStar for the detailed answer! I've already tested and all of them work as you described, I even found the indexbuffer hash in the log. I think I'm using an older release of 3DMigoto.

Posted 12/23/2015 10:15 AM   
I am willing to use "ObjectPosition1" to disable some unwanted text items with specific location and colors (they appear in DCS when the 3Dmigoto lib is used !). So I delete the related pixel shader, uncommented the following lines in d3dx.ini and dump again the shader, but there are no more lines in the *ps_replace.txt. [code]; Position variables to correct in pixel shaders. ;fix_ObjectPosition1=PointPositionAndInverseRadius ;fix_ObjectPosition1Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5, -0.5 ;fix_ObjectPosition2=SpotPositionAndInverseRadius ;fix_ObjectPosition2Multiplier=1, (stereoScreenRes.x/[/code] what am I doing wrong ? How to use these variables in PS shaders ?
I am willing to use "ObjectPosition1" to disable some unwanted text items with specific location and colors (they appear in DCS when the 3Dmigoto lib is used !).
So I delete the related pixel shader, uncommented the following lines in d3dx.ini and dump again the shader, but there are no more lines in the *ps_replace.txt.

; Position variables to correct in pixel shaders.
;fix_ObjectPosition1=PointPositionAndInverseRadius
;fix_ObjectPosition1Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5, -0.5
;fix_ObjectPosition2=SpotPositionAndInverseRadius
;fix_ObjectPosition2Multiplier=1, (stereoScreenRes.x/

what am I doing wrong ? How to use these variables in PS shaders ?

Posted 12/24/2015 04:55 PM   
A quick technical question: When I set export_hlsl=1 does 3DM duplicate the shaders already dumped in the ShaderFixes folder and store them in the ShaderCache as well?
A quick technical question:
When I set export_hlsl=1 does 3DM duplicate the shaders already dumped in the ShaderFixes folder and store them in the ShaderCache as well?

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

Posted 12/25/2015 09:41 PM   
Guys, is that method of referencing a new rendertarget allowed? I'm asking because i have sometimes flickering of a referenced texture, depending on the car position. When I change ps-t111 = reference ResourceHeadlights to ps-t111 = copy ResourceHeadlights texture does not flicker but it's a huge gpu hog. Am I doing something wrong here? Maybe I should assign each referenced texture to a different register? [code][ResourceHeadlights] [ShaderOverride-4977ae594eb27c06] Hash = 4977ae594eb27c06 ResourceHeadlights = copy o0 o1 = reference ResourceHeadlights post o1 = null [ShaderOverride-c0677e8702c32f18] Hash = c0677e8702c32f18 ps-t111 = reference ResourceHeadlights post ps-t111 = null [ShaderOverride-e9b6ca9ebcad8749] Hash = e9b6ca9ebcad8749 ps-t111 = reference ResourceHeadlights post ps-t111 = null [ShaderOverride-402b06c93b880f15] Hash = 402b06c93b880f15 ps-t111 = reference ResourceHeadlights post ps-t111 = null [ShaderOverride-3ce369598f34925e] Hash = 3ce369598f34925e ps-t111 = reference ResourceHeadlights post ps-t111 = null [ShaderOverride-2e73a7906782429e] Hash = 2e73a7906782429e ps-t111 = reference ResourceHeadlights post ps-t111 = null [ShaderOverride-8e9eb4c3365a3491] Hash = 8e9eb4c3365a3491 ps-t111 = reference ResourceHeadlights post ps-t111 = null [/code]
Guys, is that method of referencing a new rendertarget allowed?
I'm asking because i have sometimes flickering of a referenced texture, depending on the car position.
When I change ps-t111 = reference ResourceHeadlights to ps-t111 = copy ResourceHeadlights texture does not flicker but it's a huge gpu hog. Am I doing something wrong here? Maybe I should assign each referenced texture to a different register?

[ResourceHeadlights]
[ShaderOverride-4977ae594eb27c06]
Hash = 4977ae594eb27c06
ResourceHeadlights = copy o0
o1 = reference ResourceHeadlights
post o1 = null

[ShaderOverride-c0677e8702c32f18]
Hash = c0677e8702c32f18
ps-t111 = reference ResourceHeadlights
post ps-t111 = null

[ShaderOverride-e9b6ca9ebcad8749]
Hash = e9b6ca9ebcad8749
ps-t111 = reference ResourceHeadlights
post ps-t111 = null

[ShaderOverride-402b06c93b880f15]
Hash = 402b06c93b880f15
ps-t111 = reference ResourceHeadlights
post ps-t111 = null

[ShaderOverride-3ce369598f34925e]
Hash = 3ce369598f34925e
ps-t111 = reference ResourceHeadlights
post ps-t111 = null

[ShaderOverride-2e73a7906782429e]
Hash = 2e73a7906782429e
ps-t111 = reference ResourceHeadlights
post ps-t111 = null

[ShaderOverride-8e9eb4c3365a3491]
Hash = 8e9eb4c3365a3491
ps-t111 = reference ResourceHeadlights
post ps-t111 = null

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

Posted 12/27/2015 01:00 AM   
[quote="lefuneste"]I am willing to use "ObjectPosition1" to disable some unwanted text items with specific location and colors (they appear in DCS when the 3Dmigoto lib is used !). So I delete the related pixel shader, uncommented the following lines in d3dx.ini and dump again the shader, but there are no more lines in the *ps_replace.txt.[/quote]I'm not sure I quite follow the problem you are trying to solve? If you are just disabling a shader you can usually just add o0=0; to the end (replace o0 with whatever the output SV_Position0/SV_Target0 is). If you need to only disable it some of the time you will need to find a way to distinguish the ones you want to kill from the ones you want to keep - since you mentioned position and colour you might try checking those in the vertex shader, or possibly other inputs. Texture filtering may help, but my experience has been that text shaders tend to either all use the same texture, or generate their textures on the fly containing only the letters that have been displayed so far - neither of which works well with texture filtering. I haven't used the ObjectPosition1 feature personally, but my understanding is that it is there to help apply fixes to shaders when they apply to a lot (hundreds) of shaders and applying the fix to each one by hand would be tedious - if you are just adjusting one or two shaders I would not recommend using it. It is also possible that it might not even work properly anymore since I think Chiri originally had 3DMigoto decompile and recompile every shader all of the time, which I assume would have been important for that feature, but that approach caused a lot of rendering issues every time a bug in the decompiler was hit so bo3b changed it to only use the shaders in ShaderFixes.
lefuneste said:I am willing to use "ObjectPosition1" to disable some unwanted text items with specific location and colors (they appear in DCS when the 3Dmigoto lib is used !).
So I delete the related pixel shader, uncommented the following lines in d3dx.ini and dump again the shader, but there are no more lines in the *ps_replace.txt.
I'm not sure I quite follow the problem you are trying to solve? If you are just disabling a shader you can usually just add o0=0; to the end (replace o0 with whatever the output SV_Position0/SV_Target0 is). If you need to only disable it some of the time you will need to find a way to distinguish the ones you want to kill from the ones you want to keep - since you mentioned position and colour you might try checking those in the vertex shader, or possibly other inputs. Texture filtering may help, but my experience has been that text shaders tend to either all use the same texture, or generate their textures on the fly containing only the letters that have been displayed so far - neither of which works well with texture filtering.

I haven't used the ObjectPosition1 feature personally, but my understanding is that it is there to help apply fixes to shaders when they apply to a lot (hundreds) of shaders and applying the fix to each one by hand would be tedious - if you are just adjusting one or two shaders I would not recommend using it. It is also possible that it might not even work properly anymore since I think Chiri originally had 3DMigoto decompile and recompile every shader all of the time, which I assume would have been important for that feature, but that approach caused a lot of rendering issues every time a bug in the decompiler was hit so bo3b changed it to only use the shaders in ShaderFixes.

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 12/27/2015 02:07 PM   
[quote="Oomek"]A quick technical question: When I set export_hlsl=1 does 3DM duplicate the shaders already dumped in the ShaderFixes folder and store them in the ShaderCache as well?[/quote]Currently no - if a shader is in ShaderFixes it won't be dumped to ShaderCache. I have thought about changing this to make it a bit easier to get an updated shader with any improvements we make to the decompiler, but it hasn't been a high priority since it is possible to generate new ones by wiping ShaderCache and moving ShaderFixes out of the way temporarily. Plus, the function responsible for dumping these is so long it's scary (500+ lines of code) and partially copy + pasted into a second function (not as long) - I'd want to refactor all that into more manageable functions and eliminate the duplicated code before making any changes to it, but doing so risks introducing new bugs (of course, I've spotted a few bugs in it with a cursory glance which I could fix up), and at the moment it's working well enough. Not saying I won't change it, just that I won't change it lightly.
Oomek said:A quick technical question:
When I set export_hlsl=1 does 3DM duplicate the shaders already dumped in the ShaderFixes folder and store them in the ShaderCache as well?
Currently no - if a shader is in ShaderFixes it won't be dumped to ShaderCache. I have thought about changing this to make it a bit easier to get an updated shader with any improvements we make to the decompiler, but it hasn't been a high priority since it is possible to generate new ones by wiping ShaderCache and moving ShaderFixes out of the way temporarily.

Plus, the function responsible for dumping these is so long it's scary (500+ lines of code) and partially copy + pasted into a second function (not as long) - I'd want to refactor all that into more manageable functions and eliminate the duplicated code before making any changes to it, but doing so risks introducing new bugs (of course, I've spotted a few bugs in it with a cursory glance which I could fix up), and at the moment it's working well enough.

Not saying I won't change it, just that I won't change it lightly.

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 12/27/2015 02:19 PM   
[quote="Oomek"]Guys, is that method of referencing a new rendertarget allowed?[/quote]It looks ok, so it's most likely a bug in the resource assignment code. I think I might know what the issue is - I bet it's the fact I'm caching a view of the resource, but here I would need two separate views (one for when it is used as a render target and a separate view for when it is used as a texture). I'll get an update out asap to address this.
Oomek said:Guys, is that method of referencing a new rendertarget allowed?
It looks ok, so it's most likely a bug in the resource assignment code. I think I might know what the issue is - I bet it's the fact I'm caching a view of the resource, but here I would need two separate views (one for when it is used as a render target and a separate view for when it is used as a texture). I'll get an update out asap to address this.

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 12/27/2015 02:36 PM   
[quote="DarkStarSword"][quote="Oomek"]A quick technical question: When I set export_hlsl=1 does 3DM duplicate the shaders already dumped in the ShaderFixes folder and store them in the ShaderCache as well?[/quote]Currently no (...)[/quote] Good, this is What I wanted to hear. I just needed a confirmation :)
DarkStarSword said:
Oomek said:A quick technical question:
When I set export_hlsl=1 does 3DM duplicate the shaders already dumped in the ShaderFixes folder and store them in the ShaderCache as well?
Currently no (...)


Good, this is What I wanted to hear. I just needed a confirmation :)

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

Posted 12/27/2015 03:55 PM   
  45 / 143    
Scroll To Top