eFX Shader Injector Support Thread

Discussion in 'Games, Gaming & Game-demos' started by Crosire, Oct 22, 2013.

  1. Bobert13

    Bobert13 Member

    Messages:
    26
    Likes Received:
    0
    GPU:
    GTX 560 TI - 1GB
    Not even sure if it's possible to make that work. The point is to send it to the screen upsampled and let the application downsample it to the output resolution. If everything goes right, it will use some sort of filtering (instead of nearest neighbor) to output the downsampled image. To do that, I believe SV_TARGET is what needs it's dimensions changed. Maybe I'm not quite getting the "output" texture type? :frown:

    Either way, I've implemented a proof of concept of my idea by upsampling each pixel indiviadually and then merging them in the same pass. The result isn't amazing, but on top of SMAA it's pretty nice. Unfortunately, the performance impact of the interpolation algorithm is currently waaaaay too stronk. Just running the Interpolated Downsampling filter is more of a performance impact than 2x SuperSampling.

    And the configurable "buffer" type textures? *insert, doe-eyed, "please" smiley here* I need that too to get SMAA T2X working.
     
  2. Preacher0815

    Preacher0815 Member

    Messages:
    30
    Likes Received:
    0
    Would it be possible to add the ability to let the iGPU handle all the image enhancing stuff while the game still runs on the dedicated graphics card?
     
  3. Crosire

    Crosire Member Guru

    Messages:
    164
    Likes Received:
    0
    GPU:
    -
    I don't know of a way to choose which card to do calculation on. The D3D device of the game is connected to one anyway, no way to change that without recreating it, which would invalidate the games pointer to it and lead to a crash. No way to create a second device either as one could not copy (textures) between those.

    And yes I would like to add the texture buffer too, but as said, I don't have an idea on how to make that configurable using annotations.

    An "output" texture is actually a rendertarget. You can specify it as target for "SV_TARGET" in the technique/pass section. So when it's set as target it's exactly that, a writeonly buffer, similar to the backbuffer, but instead writing to a texture. Otherwise used like any other texture. So you can render something to that texture the first pass and then later use the result in the next passes. And of course you can change the size of the rendertarget, which should force D3D to scale the render result accordingly.
     
  4. Bobert13

    Bobert13 Member

    Messages:
    26
    Likes Received:
    0
    GPU:
    GTX 560 TI - 1GB
    Would not clearing the texture, at location xxxx (if it's marked type = "buffer") at the end of the frame, and only clearing it, once it's being re-written to, work, for getting the scene to the next frame at least?

    Edit: Without causing other issues like memory leaks or bad data from three frames ago sneaking in. Edit2:... or performance issues from "clear then write". Edit3: is "clear then write" (and essentially, most of the checks involved in a real implementation of my pseudo-code) even necessary if you stipulate that every pixel must get new data (even if it's 0,0,0,0).

    Pseudo code:

    Code:
    if writeTo render_target9000 do
    	isRTempty?
    		yes->write!
    		no->clear then write
    	end
    end
    Further down:

    Code:
    //clear all render targets
    render_target1 = NULL
    render_target2 = NULL
    ...
    *snip*render_target9000 = NULL*snip*
     
    Last edited: Jan 10, 2014

  5. adi518

    adi518 Member

    Messages:
    47
    Likes Received:
    0
    GPU:
    2x Evga 970 SC
    Whoa.. that's new to me. First time I hear about this.
     
  6. kurtferro

    kurtferro Member Guru

    Messages:
    114
    Likes Received:
    0
    GPU:
    SAPPHIRE NiTRO R9 390 WB
    It's possible make a shader that add a crossair in the screen center? might be useful in some fps
     
  7. Radical_53

    Radical_53 Ancient Guru

    Messages:
    3,965
    Likes Received:
    102
    GPU:
    Aorus 1080 TI
    Very funny :3eyes: Or maybe some colored squares around players, maybe even bright red player models?
     
  8. kurtferro

    kurtferro Member Guru

    Messages:
    114
    Likes Received:
    0
    GPU:
    SAPPHIRE NiTRO R9 390 WB
  9. TCPIP

    TCPIP Active Member

    Messages:
    67
    Likes Received:
    0
    GPU:
    AMD Radeon R9 290
    Sadly even a point on the screen created by a shader may be considered as an unfair advantage in some multiplayer games and as a result a reason for the developers to implement autobans for shader injectors.
     
  10. Radical_53

    Radical_53 Ancient Guru

    Messages:
    3,965
    Likes Received:
    102
    GPU:
    Aorus 1080 TI
    As it is. It has always been cheap and it will always be cheap. Sc*mbags using that in Hardcore game modes to gain an advantage.
     

  11. TFL Replica

    TFL Replica Master Guru

    Messages:
    384
    Likes Received:
    2
    GPU:
    NVIDIA GTX 970
    It had never even occurred to me that someone might abuse shader injectors for that purpose. I guess multiplayer FPS games have the right to ban them after all.
     
  12. Radical_53

    Radical_53 Ancient Guru

    Messages:
    3,965
    Likes Received:
    102
    GPU:
    Aorus 1080 TI
    If there's an option people will use it. Most of the st*pid people need stuff that's very easy to use though, so providing a pre-made switch would be the worst thing to do.
    People have been putting tape on their screen, or different textures, for years. Cheap people are cheap people. You'll meet lots of them online.
     
  13. K-putt

    K-putt Master Guru

    Messages:
    472
    Likes Received:
    0
    GPU:
    GTX 1080Ti
    Hmm, i kinda like this idea. But not with crosshairs. More of a grid for different aspect ratios. Like the grid you find in the viewfinder of a camera. Could make screenshoting a little bit easier if i can't use a custom aspect ratio and need to crop.
     
  14. Crosire

    Crosire Member Guru

    Messages:
    164
    Likes Received:
    0
    GPU:
    -
    Now you know why eFX doesn't currently allow accessing the depth buffer, even though that is already possible. It would be way to easy to implement cheats that way, at the cost of the possibility to add advanced effects like DOF.
     
  15. Radical_53

    Radical_53 Ancient Guru

    Messages:
    3,965
    Likes Received:
    102
    GPU:
    Aorus 1080 TI
    Thanks! That's very wise and possibly the reason we're still able to use these injectors "legally" in online multiplayer games.
     

  16. Sajittarius

    Sajittarius Master Guru

    Messages:
    399
    Likes Received:
    35
    GPU:
    2080ti Windforce
    Hey guys, does anyone know if Boulotaur's Gaussian blur has been ported to EFX? Thanks in advance :)
     
  17. padolamap

    padolamap Member

    Messages:
    42
    Likes Received:
    0
    GPU:
    ATI RANDEON 6990 4GB
    ask the same
     
  18. Bobert13

    Bobert13 Member

    Messages:
    26
    Likes Received:
    0
    GPU:
    GTX 560 TI - 1GB
    Another feature request. Any chance for supporting R9G9B9E5_SHAREDEXP format? I'm on my 4th complete rewrite of interpolated downsampling (with really, really promising results) and I'm currently having to use R16G16B16A16_FLOAT to store an intermediate texture and I'd at least like to see if the shared exponent format speeds up texture sampling. I tried R11G11B10_FLOAT but it didn't have any noticeable improvement in my benchmark and it was somewhat "lossy"; the final image came out slightly shifted towards blue.

    I think shared exponent with more mantissa digits per channel would work out much better in the "lossless" category since my expected data range is something like 0.0 to 216.f. As far as performance goes, just because my card (seems to) sample the 64-bit R16G16B16A16 format as fast as it samples a 32-bit format doesn't mean everyone's would. Going up to R32G32B32A32 imposes a noticeable hit to performance during my benchmark.
     
  19. alabrand

    alabrand Member

    Messages:
    14
    Likes Received:
    0
    GPU:
    Nvidia GeForce GT 650M
    Does EFX not have support for SMAA/FXAA on Windows 8.1 yet?
     
  20. kurtferro

    kurtferro Member Guru

    Messages:
    114
    Likes Received:
    0
    GPU:
    SAPPHIRE NiTRO R9 390 WB
    eFX is the injector and should support it, but someone have to made SMAA/FXAA for this new injector, i think that SweetFX support it, but only for DX9 games. We are waiting Mr. CeeJay.dk for implement it for other DX, but he seems to be busy with his work.
     
    Last edited: Jan 18, 2014

Share This Page