SweetFX Shader Suite release and discussion thread #4

Discussion in 'Games, Gaming & Game-demos' started by CeeJay.dk, Sep 30, 2013.

Thread Status:
Not open for further replies.
  1. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    :bang: my bad. I will fix it in the next release. Just rename GEMFX_readme.txt to GEMFX_Readme.txt (case sensitiv ...). However, it seems to work on some games/systems without that little detail :p
     
  2. Martigen

    Martigen Master Guru

    Messages:
    457
    Likes Received:
    210
    GPU:
    GTX 1080Ti SLI
    Unfortunately this is naive. Anything a developer does costs money. A developer isn't going to waste programmer time writing code to detect a shader in a third-party tool to prevent abuse by the third party tool, all with the risk of it being worked around. All they will do is ban it. It's cheaper, and more effective. Remember for online games the gaming environment is their profit -- if it's threatened by people leaving because of cheaters, there is no shades of grey, just black and white. You don't take the risk, you simply outright ban the tool. It's the smartest business decision.

    Again, you need to think from their perspective. They're not beholden to respecting the reputation of a third-party product, their only concern is the reputation of their own. If this means ensuring a fair playing field by banning it, then that's what they do -- regardless of how popular it is. And it only takes just one hacked version of SweetFX -- just one -- to do the rounds and then the only reputation SweetFX has is one as a cheat tool, and it will be panned pre-emptively in future games.

    There is zero business incentive to support or accommodate SweetFX from their perspective. The day you can show a developer supporting SweetFX = profit for them, then you're onto something :)


    I think CJ summed it up well.
     
  3. Crystol

    Crystol New Member

    Messages:
    8
    Likes Received:
    0
    GPU:
    GTX 760
    So no one is willin' to help me solve the picture in picture prolem in CoD AW. Sad :/
     
  4. WarpNacelle

    WarpNacelle New Member

    Messages:
    6
    Likes Received:
    0
    GPU:
    GTX 980
    I've tried what you suggested and it still hasn't fixed the problem. I still get the same error with warframe. I also did some testing with two other dx11 apps. For Sniper Elite 2 I get the same error as warframe but the last line reads as:
    For Metro 2033 it actually start up, but then proceed to remain as a black screen, the log for that one:
    Thanks for the responses problems, I understand you literally just released GEMFX and that problems are natural at this stage.
     

  5. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    It still says that you do not fit the requirements though you renamed file?

    Whats you OS and GPU, and are those 64bit games?

    I have Metro 2033 so I will try it myself. (need just a while to install)
    - and make sure to not use the by-pass-ui (only tested for Rome 2 so far)
    - also install the latest .Net Framework and c++ vcredists

    EDIT::
    I cannot tell for the other apps you tried but Metro 2033 requires an older hook so I first have to figure out which it is.
    EDIT2::
    Actually it does work, you just need to switch from dx9 to dx10 or dx11 in the menu and then restart the game.

    [​IMG]
     
    Last edited: Nov 19, 2014
  6. megamawman

    megamawman Member

    Messages:
    11
    Likes Received:
    0
    GPU:
    GTX 970m
    Does this mean that GEMFX only works in dx10/dx11 programs but not dx9 programs?
     
  7. Marty McFly

    Marty McFly Member

    Messages:
    22
    Likes Received:
    0
    GPU:
    Nvidia GTX 670 2048MB
    Is it by any chance possible to get hand on the shaders? I'm sure SweetFX and/or myself would profit from that.
     
  8. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    Yes, there are prior GEM versions for dx9 but not with those features. I will port the features to dx9 once GEMFX works for 64bit too.
    Actually just got it to work for 64bit games (at least tested on Win8.1).

    (all pictures from friend who helped me debug 64bit games since I have no environment for that -> all effects enabled though experimental or maybe to much (HBO & Danvinci & ...)
    Here BF4::
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Once I am finished with GEMFX I might !finally! have some time to release some proper shader code or directly look into reShade (actually already talked a while ago with Crosire about it in skype) :) However, currently I am day and night (literally) busy with dev on GEMFX...!!
    Also, reShade is not even released yet, so I think (from my own experience) there will be many more issues that devs have to look into for quiet some time.
     
    Last edited: Nov 19, 2014
  9. JPulowski

    JPulowski Active Member

    Messages:
    84
    Likes Received:
    0
    GPU:
    NVIDIA GeForce GTX 690
    First off, nice work. It is nice to see some advanced effects just like in ENB (which is game-specific), that can be applied to majority of games.

    But here is a side note:
    Currently ReShade/SweetFX is not open to public. And still we have many injectors, tools based on SweetFX. The thing that makes me worry is this: After ReShade becomes open source -if it becomes to that- I think there might be more forks based on ReShade. And it kind of reminds me of the Linux platform which has tons of forks that has been created instead of improving the original one. For instance, Gedosato already has a downsampling/upsampling algorithm implemented. GemFX has some nice looking shaders. I am not implying what I am saying is 100% correct, it is just my personal opinion, I might be wrong and it is a question of debate. So I was wondering what does the community think? CeeJay what do you think? You said you are the director of this project and If I remember correct one time you asked ENB's creator Boris if you can use his shaders or something and he simply answered: "No." in a rude way.

    Maybe the concept and dynamics can be changed a little bit. I mean we could create a "shader library" which is open to public. So just like downloading a preset from SweetFX Database, the user could download the shaders that he would like to use with the injector. So with this way, the original author could update his/her shaders whenever he/she wants without being have to wait for the next major release. Also experimental or dangerous(?) shaders would have limited access, only to testers maybe. And of course anyone would be able to share his/her shaders with the public and I think that kind of system would encourage them.
     
  10. Marty McFly

    Marty McFly Member

    Messages:
    22
    Likes Received:
    0
    GPU:
    Nvidia GTX 670 2048MB
    I'm happy with every buggy messy wip code. Since I'm beta tester of ReShade I have the rare chance to get my shaders collection done until public release. Quite some of your stuff is already in ME but I'd really like to tinker with it already.
     

  11. Crosire

    Crosire Member Guru

    Messages:
    164
    Likes Received:
    0
    GPU:
    -
    Nicely done =).

    Some (hopefully useful!) advice I gathered while taking a quick look at your work:
    You built the DLL with a whole bunch of debugging stuff enabled (or so it looks), that's usually not something you want in a release build and might even break it for some people.
    If I got that right you hook the IDXGISwapChain interface/vtable with a fixed offset into the DXGI library on Windows 8.1 (please correct me if I'm wrong). Don't. That offset can vary between computers, depending on the runtime version installed, windows updates, etc... It works for you, but that may look entirely different for somebody else (which by the way is the case more often than you would ever imagine: NVIDIA vs AMD issues, driver related differences, different runtimes installed, Windows messing around, you name it).
    Then there is the thing with "D3D11_CREATE_DEVICE_SINGLETHREADED". You remove that during device creation. While that's the way to get deferred contexts working it breaks some games (Really, I ran into this myself. Some games use driverside optimizations etc. which do not like it if you mess around with their creation flags at all). And please never compare flags with the "=" operator (in your D3D11CreateDevice[AndSwapChain] hook), those can be bitwise OR'd together, so you need to use the bitwise AND operator to check if a single flag is set in there.

    It's actually stable, I could go ahead and release it today. But I made that mistake with eFX and that's why it's a bloody mess and buggy as hell. Closed beta gives me time to polish out all the hidden bugs one normally would not find, allows to test features with selected testers who are able to provide actual, useful feedback (i.e. because they write shaders using those features) and makes sure the later open beta runs smooth: Most people expect it to work on their first try, even if it says "BETA" on it in capital letters. I just need to look at Battlefield and how they failed with all that.

    I'm no longer planning to make ReShade open source. Why look into encryption and all that if one could simply download the source, remove the relevant parts from the code, rebuild and done.

    Reason that thing is not on the TODO-List for the near future, no need to do the same other tools already can do. One can chain them if features from multiple ones are wanted.

    This is kinda the whole idea with ReShade: It's the reason it has its own shader language, it's the reason nothing is hardcoded, it's the reason all shaders are present in source form beside the injector (or that ReShade itself does not come with shaders, that's all up to CeeJay/MartyMcFly/You/...) etc.
     
    Last edited: Nov 19, 2014
  12. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    First of all thanks for all the advice. I should stick this somewhere so I can look it up when I get to those points in a future iteration :)

    There is actually no "debug stuff" turned on, I just write my own very plain log to get the most basic information. If this would ever be a problem I could also add a debug checkbox in the configurator for people to toggle it so thanks for pointing that out.

    The DXGISwapchain offset is indeed variable but maybe not as variable as it could be. There have been no issues so far but mentioning runtimes, I have some features implemented that require the .Net Framework and c++ vcredists and it is very tricky for some to get it work but in the end it worked for anyone so far. Anyway, I definitly know what you mean and it can be tedious to fix those issues for both parties (but so far anything was fixable).

    I might not need deferred contexts anymore in the future but for now thats how it is implemented. I will check about the operator for evaluating those flags, very nice tip!

    Yeah I know about eFX but I still used it for Win8.1 a month ago so I really appreciated the release. Everyone expects everything to run right away :) but that wont change the fact that software can be improved for years and years. I personally got the best results with releasing software as soon as possible with the side note that it might be buggy. Thousands of users find mistakes a lot faster than you could ever do and also help to resolve those individual system issues. However, I think everyone has its own experience and I understand that well regarding eFX (though I found it pretty neat for what it offered).

    In general I think I follow a little different approach with GEMFX than (generic) ENB, SweetFX or reShade.
    Using a metaphor:
    On the one hand, you guys sort of build the industry standard tools (for shader creation and execution) that any artist can pick up and use. With reShade you will even enable artists to create their own tools. Typically, "all" artists will use these tools cause they seem to deliver everything they want.
    On the other hand, I am the artist who always picked up those tools to paint the world as desired. I do like to express what looks good in my mind. However, the older the artists gets the more he uses his own specific tools. He might not use the industry standards anymore cause his personal vision became more and more specific (note here that reShade might have the edge to enable this kind of creativity). Creating GEMFX, I did not "only" create a (!only! very simple) tool for other artists to use but I already imprinted my own vision (very different from Cejay's perspective I believe :)). In the pictures I showed, GEMFX is not using any SweetFX shaders but it is my basic vision that (because I of course know that not all taste is the same) has certain highlights and features that are adjustable. Just because SweetFX is great and well know I added it to give even more options :)
    Also, as Marty already realized, I did not reinvent the wheel but as I said am an artist who uses shaders, maybe modifies them a little and put them in the correct order to create his vision. Though some things might sound new it is not names given from shader science books but from users that saw shaders and gave it the most fitting name (SSAO is not SSAO in GEMFX just called like this by someone before I even gave it a name).
    This also explaines the difference in our ambitions. I am actually happy if 90% of all people can use GEMFX in 90% of all games while you want to be the industry standard that has to work for at least 99.98% of all people in 99.98% of all games.
    The good thing about GEMFX is that it only takes me one day (e.g. in case of Rome 2 Total War and Dark Souls 2) to create a competitive mod that makes use of my own vision while being still adjustable. Of course never in a scope of reShade but there are also users that neither want to be artists or devs, they only want to play and have simple options to pick from (thats why SweetFX presets became so famous) at day one of release (not taking years as in skyrim or gta).

    Anyway, just to point out that I would not even dare try to compete with reShade :p but its also a little different goal in my mind :).
     
    Last edited: Nov 19, 2014
  13. Matsilagi

    Matsilagi Member

    Messages:
    28
    Likes Received:
    0
    GPU:
    MSI GT630 2GB
    One thing i noticed is that GEMFX lacks DX9 support.
    Would it be possible for you to make a DX9 ver too?
     
  14. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    It is planned, yes. Though after all base dx11 features are done (64bit support will come today).
     
  15. Marty McFly

    Marty McFly Member

    Messages:
    22
    Likes Received:
    0
    GPU:
    Nvidia GTX 670 2048MB
    ....
     

  16. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    The good thing about coding as a hobby is that there are no deadlines. As we modders use to say: "Its done when its done" and I would like to keep it that way :) I dont like when my hobby feels like my job. If it would be my job I might have to show some results even if they are buggy/messy/nooby and would feel bad about it but since it is not you might allow me to do so once I feel confident about it? :gape: I have already so many things in mind that I need to wrap up and correct first...

    Please, just dont get me wrong on that matter; plus I actually know how veteran you are when it comes to shaders :3eyes:
    I saw your long list you put up in that short time and I do know you worked with ENB so you even know dirt lens effects. All the GEMFX shader with advanced in the front (and some others) are based on dx9 ENB shaders (which you also ported already in your list) only with additional debanding.

    As I said before, I am just the artist.

    EDIT::I think if you check out the configurator or game with GEMFX applied you get pretty close to what I did already :)
     
    Last edited: Nov 20, 2014
  17. Crosire

    Crosire Member Guru

    Messages:
    164
    Likes Received:
    0
    GPU:
    -
    I wasn't talking about logging. That of course should be enabled, would be pretty pointless otherwise. I was talking about CRT runtime checks floating around in the assembly when they shouldn't.
     
  18. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    :bang: ... yeah you are actually right ... it generates debug information .oO and I was always wondering why debugging worked also well with the release version :D Genius!

    (actually wonder how that flag got in there)

    Well, release with 64bit support will have it deactivated, nice catch Crosire!

    By the way, since we talked about it before, could you get some work done on direct draw or is it not feasible considering its difference to later APIs?
     
    Last edited: Nov 20, 2014
  19. WarpNacelle

    WarpNacelle New Member

    Messages:
    6
    Likes Received:
    0
    GPU:
    GTX 980
    I have tried to update my .net framework and vcredists, and also setting metro to dx11, still nothing. It maybe related to windows 8.1.
     
  20. Lushfa

    Lushfa Member

    Messages:
    34
    Likes Received:
    0
    GPU:
    GeForce GTX 570 1280
    I ran it on Win8.1 with dx10 though, since I have no dx11 gpu. The vcredists and .net framework issue is tricky by the way. It is hard to help you with that issue since I can only tell you what I know from other users with similar issues. For them it always helped (you can find out more in the TWC forum). To be sure you might also select dx10 instead but I doubt thats the problem.
     
    Last edited: Nov 20, 2014
Thread Status:
Not open for further replies.

Share This Page