I got it!!! Running on GTX295 DirectX 10.1 card! Fix for Black screen/Green Arrow!

McNeish

Posts: 352

Posted:
Edited:
Posted: -

EDIT : For the time being, the latest patch (patch 9) seems to disable this "fix". It was great while it lasted... /EDIT

Mod Note:
As this is not an actual Bug, it got moved to the Hardware section, as it pertains more for those that wants to hack the software to use DirectX 10 cards to run the Hangar Module, which is NOT supported by CIG. Do it at your own risk, there will be no support and any abnormality you find will not be taken seriously as it's not designed to work with DX10.

However I understand there are fair amount of people still stuck with old hardware unable to run the Hangar Module, so we'll keep this sticky here for a few days for people to catch on the trick, before it gets lost in the forum.


*Thank you, that was the point - I didn't want to have to upgrade at this moment and would prefer to put it off until dogfighting or as late as possible. I wasn't originally sure which section to post this in - and figured it'd get the most initial views by the people that needed it the most from within the Hanger section, but I'm fine with it being moved to Hardware. I did bounce it around for a little bit myself as well. And thanks for the sticky - I'm honoured.*


----------------------------------
TLDR: I know it's wordy - But you can skip to 'Here are the steps:'
----------------------------------


I got to thinking...

If the massively detailed CryEngine SDK editor 'Jungle level' can run in DirectX11 mode on my NVidia GTX 295 - a DirectX10.1 card, then why can't the Star Citizen hangar?

Microsoft did a very good thing in DirectX 10.1 to make it a bit more future-proof.
Any new DirectX features from a higher DirectX version - otherwise known as a higher 'feature_level' can be software emulated.

Starting with Windows 7 there have been drivers capable of using a graphics feature called 'WARP' to enable such emulation.

WARP is built in starting with Windows 7, though if you 'are' running Windows 7 - you will need to install the 'Platform Update for Windows 7' update from Microsoft to enable running games that use DirectX 11 features.
(Check if you have it installed first, if not, the download link is here)

Windows 8 (built in already) also adds WARP support for version 11.1 and 11.2

Anyway, I fiddled around for a bit, checking dll dependencies, extracting packages and scripts to see what makes it tick.

After a couple days I eventually figured out that it's actually quite a simple matter to fix which surprisingly enough doesn't require the modification of any StarCitizen files produced by CIG, so therefore should even be perfectly 'legal' in regards to the EULA.

I get quite nice framerates on 'Medium' - and can even run well at 'Very High' quality. (Edit: Avg 24fps on Medium)
I get much better framerates on my GTX295 than I do on my work machine with its professional grade NVidia Quadro 4000 DX11 card.
I actually didn't even notice any real differences between the DX11 card and my DX10.1 card so the Warp driver was doing a good job.


I want to make sure it's known I'm not saying that CIG was lying when they said it's DX11 only. It IS a DX11 only game. DX10 will not be officially supported and it won't get quite as good of framerates via WARP (though it's pretty freaking fast) and it may not continue to work in the future after further development and patching, but it at least for now it lets me enjoy my ship and hangar like everyone else.


I'd love to be also be able to test it out with something more complex like a Freelancer or something that would bump up the hanger size, but
since I don't have the funds for any extra ships (my wife and daughter come first), I've only tried this with my 315p in the 'Discount
hangar'.


Here are the steps:

Install the newest CryEngine SDK (or get these files from someone that has it installed - the files to copy from here are about 10MB total)
CryDev SDK Download Link

OR

Speedier alternate download location - http://yadi.sk/d/H3Tn8Vwk8rGbA - Thank you @Kangarad1.
I have personally verified the files hosted on September 7 2013 as matching my versions using WinMD5 (www.winmd5.com) and have put the expected filehash under the filenames below for you to verify them yourself after the download if you wish.



Here is the most important step
Copy the following files from the SDK 'CryEngine\Engine' directory (or download location) into your 'StarCitizen\CitizenClient\Engine' directory.

ShaderCacheStartup.pak
MD5 Filehash: df2d753198c9cd85988c61d0d85f3dbf

ShadersBin.pak
MD5 Filehash: 6a3d454de1252b1bd17d78acaa3fb7cc


Do not overwrite any existing pak files.



Run the launcher and enjoy!!!

Who knew it'd be so easy, eh?



------------------------------------------
My System:
Windows 8 Pro x64
Intel I7 920 @ 2.8Ghz
6 GB ram
NVidia GTX 295 - a DirectX 10.1 card
Resolution 1920x1080
------------------------------------------

Game.log shows both my 'GTX 295' and the 'WARP driver':

Logging video adapters:
- NVIDIA GeForce GTX 295 (vendor = 0x10de, device = 0x05eb)
- Adapter index: 0
- Dedicated video memory: 873 MB
- Feature level: DX10 (SM 4.0)
- Displays connected: yes
- Suitable rendering device: no
- Microsoft Basic Render Driver (vendor = 0x1414, device = 0x008c)
- Adapter index: 1
- Dedicated video memory: 0 MB
- Feature level: DX11 (SM 5.0)
- Displays connected: no
- Suitable rendering device: no

-----------------------------------------------------------------------------------
Hashes to help with searching
#DirectX10 #DX10 #Mod #BlackScreen #Hangar #BlackScreen #GreenArrow #Fix #Shaders #GTX295 #GTX
-----------------------------------------------------------------------------------
  • McNeish

    Posts: 352

    Posted:
    Edited:
    Posted:
    Edited:
    It may or may not be due to WARP, but I had been playing around with it and figured there was a good chance it was related. Since I don't have another WinXP or Vista system or a pure DirectX 10 only card to try on (mine is 10.1) - I wasn't 100% sure.

    As far as I can tell in my research - The WARP driver will send only the features it can't handle to the cpu for software rendering - which yes is slower, but it's only a part of the rendering being handled this way. You still get to use the full power of the card. It technically allows you to run a DX11 game without even having a graphics card, but it'd be stupidly slow.

    There 'is' a supported graphics card check built into CryEngine that has a list of Crysis supported cards - the list is actually 3 txt files in one of the pak files. If your card doesn't match one of these it will ask you if you wish to continue anyway. Hitting 'Ok' will try to use what you have, but is not guaranteed.

    I'll try doing a framerate test, but it looks like I'm not just getting way more than a measly 16fps.
    Medium is nice and smooth. I've had other DX10 games stuttering before and Star Citizen is running great.

    It has to still be using my card in some regard as it even runs quite well on 'Very High 1920x1080' - which I know for sure is way too taxing for it to be handled in a pure cpu/software render mode.

    It also heats up my card which shows it's doing something and not all cpu rendering.
    Do watch your card temps - I'm not liable for any meltdowns - mine got to around 90 degrees, but that's not really uncommon for this card.


    It still could be the combo of WARP and the possibility that not many DX11 only features have been used by CIG yet or it could be that the cached shaders are allowing Shader level 4.0.


    Edit: Checking against the original files - I now have a StarCitizen\CitizenClient\USER\Shaders\Cache\D3D10 directory - so it 'is' enabling DX10 shaders along side any WARP capabilities used.

    Either way - I get to enjoy the hangar now and can put off a new card purchase until later in the development cycle.



    Note: If anyone has a way to attach files to this forum or safe verified way to get just the two files out to everyone it would probably help a lot of people - the SDK 1.5GB download 'is' a bit excessive, but in my opinion still worth it.

    **** Even better is if CIG added these two files into their next hanger patch - it'd probably only take a couple seconds to do it as I'm sure they have the SDK floating around on a hundred machines over there. They still don't have to support DX10 in the future, but at least it could work for us as long as possible.
  • McNeish

    Posts: 352

    Posted:
    Edited:
    Posted:
    Edited:
    Graphics Tweaks:

    *SLI fix*
    My framerate almost doubled by enabling alternate frame rendering on my GTX295.

    It's a dual core, internally SLI'd card and the default settings don't seem to take advantage of the second core.
    I did the following to have it now use both cores to their full potential.


    Go to:
    Nvidia Control Panel
    Manage 3d Settings >
    Program Settings >
    Add "starcitizen.exe" >
    MultiGPU rendering mode: Force alternate frame rendering "2".
    MultiDisplay/Mixed GPU mode: Single display performance mode
    Vertical Sync: Adaptive


    Now I get 40fps on medium!!!


    Questions for the community:

    Has anyone tried with the business / deluxe hangar or multiple ships yet?

    Edit: I've now personally tested every hangar with this solution on my machine and they work great!!!

    I have some screenshots here.

    https://forums.robertsspaceindustries.com/discussion/52737/i-now-can-test-all-the-hangars-and-float-in-space

    I would love to try multiple ships, but I don't have the funds for more than my little 315p - unless someone would be nice enough to gift something. ;-)

    Either way, I'm just glad to help out the community - I like it - I really feel like a part of things now.
  • McNeish

    Posts: 352

    Posted:
    Edited:
    Posted:
    Edited:
    Thank you for all the MVP recommendations - we'll see what CIG decides - though either way it's really appreciated.

    This all just started out as 'I want to see my ship dang it!!'
    The persistence paid off after a few days, because as soon as I saw the loading screen actually pop up I was ecstatic and knew I just HAD to share it with all you 'guys and gals in the verse'.

    I'm glad to be a part of such a courteous, intelligent and just plain awesome community.


    ---------------------------------------------


    Awesome!!! MVP

    Thanks everyone, for the nominations and support.

    And a great big thank you to CIG for all the hard work and the wonderful things you've done to provide all of us with an experience that's so more than just a game.

    We all appreciate it.


    See you all in the Verse!



    ------------------------------------------


    Hey cool, looks like there's a contest going on for the best MVP each month.

    Voting will be the end of September / first week of October (the week before the first October MVP) - keep an eye on this thread.

    https://forums.robertsspaceindustries.com/discussion/41094/competition-the-mvp-of-mvps-sep-2013/p1

    I'll need everyone's vote to go against the 'assets post' for sure - that thread sure is shiny.

    Anyone who would like a reminder PM me and I'll try to let you all know when voting is open.


    Ok everyone - voting for the best MVP is now live and I need your help!

    Please pick me - "MCNEISH", and in the Other section, please put YOUR forum name/handle.

    For example mine is: CoolGuy/McNeish

    http://bit.ly/19OCsB2


    Thank you so much for your support.
  • NomakeWan

    Posts: 17

    Posted:
    Posted:
    I just wanted to say thank you. I completely understand why the team is requiring DX11 cards, and having messed around with the Hangar Module on my brother's rig it's totally worth it and I'm absolutely going to be building a new rig just for this game...

    ...But even if I have to drop settings to minimum, it's still nice to be able to run the Hangar on my GTX260. I feel like a tester now. Thank you so much!
  • BadIronTree

    Posts: 728

    Posted:
    Edited:
    Posted:
    Edited:
    Does not matter... when the game will be ready it have have many Dx11 features that what you did it will not work...

    + if you have 50 ships fighting in space your card would not be able to cope anyway :D
    sun_GR.jpg
  • M-ZWO

    Posts: 110

    Posted:
    Edited:
    Posted:
    Edited:
    I already said it in the 'Please enable DX10 support'-thread, but for the sole simplicity of your solution alone, I can't feel bad saying it twice:
    Thank you, thank you, thank you!

    m-zwo
    :: suum cuique ::
  • NomakeWan

    Posts: 17

    Posted:
    Posted:

    Does not matter... when the game will be ready it have have many Dx11 features that what you did it will not work...

    + if you have 50 ships fighting in space your card would not be able to cope anyway :D

    Perhaps you don't understand how software emulation works. This solution only works properly because DX10.1 includes the ability to emulate future DX features, which is exactly what it's doing. It's emulating the DX11 calls that the Hangar Module is making in software.

    You are correct that DX10 cards in general may not be able to cope with the final game, but as we aren't even close to an Alpha this solution is a wonderful stopgap measure to allow more people to test out the modules.
  • Parias

    Posts: 315

    Posted:
    Posted:
    This is pretty awesome. Nice find.
  • Kala

    Posts: 2

    Posted:
    Edited:
    Posted:
    Edited:
    I have a Freelancer and a GTX260 card on my desktop. I'll let you know how it works out. My brand new laptop is DirectX 11 compatible, but can barely run the hangar, so I'm really looking forward to seeing my sexy ship in all its glory. :)

    Edit: Eeeeeeee! It worked! It feels a smidgen on the sluggish side (I haven't tried running Fraps), but that could also be because I was just playing a game where I'm running around with speed boosts half the time. It is SO nice to not feel like I'm wading through molasses on the laptop. :) Thank you, thank you, thank you!

    Edit 2: I just changed my settings from Low to Medium to High, and it still has the same amount of sluggish-feeling, so I'm going to chalk that one up to being speedy less than 10 minutes ago. (Vroom.)
  • ShockwaveLover

    Posts: 3347

    Posted:
    Edited:
    Posted:
    Edited:
    Well, of course you get better framerates than with a Quadro. The firmware and drivers on that (unsurprisingly) optimise it for tasks far different to gaming. I'd be surprised if your 295 ended up being slower, when it's a) more powerful in hardware terms and b) using a less demanding version of DirectX.

    Actually a muffin.
  • GeirGrusom

    Posts: 49

    Posted:
    Posted:

    Does not matter... when the game will be ready it have have many Dx11 features that what you did it will not work...

    + if you have 50 ships fighting in space your card would not be able to cope anyway :D

    Perhaps you don't understand how software emulation works. This solution only works properly because DX10.1 includes the ability to emulate future DX features, which is exactly what it's doing. It's emulating the DX11 calls that the Hangar Module is making in software.

    You are correct that DX10 cards in general may not be able to cope with the final game, but as we aren't even close to an Alpha this solution is a wonderful stopgap measure to allow more people to test out the modules.
    It's not only emulating DirectX 11 features, it's running completely in software. WARP is a software renderer.
  • Falba

    Posts: 594

    Posted:
    Posted:
    your professional card either a Nvidia Quadro or an AMD FirePro... there is no ATi Quadro...
    Cutlass - 350R - Hornet F7A-M - Gladiator - Banu Merchantman

    Core i7 4930K @ 4500 MHz (6C|12T) @1.2V (t max: 65 °C)
    4x 2 GB G.Skill PI 2200 MHz CL 7
    2x GTX Titan @ 1265 MHz (boost disabled) --> 3x Dell U2312HM - landscape
  • Karab

    Posts: 1113

    Posted:
    Posted:
    Nice temporary tweak, especially for those who are holding off upgrading their older DX10 based cards and wanting to mess around in the Hangar Alpha.

    Thanks.
    J7GJZPN.png
  • Ralgon

    Posts: 1199

    Posted:
    Posted:
    Awesome stuff, a little reserved about what happens with skewing crash logs in the dogfighting module.... but if it works you cant complain!!
  • Karab

    Posts: 1113

    Posted:
    Edited:
    Posted:
    Edited:

    Awesome stuff, a little reserved about what happens with skewing crash logs in the dogfighting module.... but if it works you cant complain!!

    Indeed, I would hope the whoever applies this workaround will not post in the hangar bug subforum about issues pertaining to the program.
    J7GJZPN.png
  • NomakeWan

    Posts: 17

    Posted:
    Posted:

    It's not only emulating DirectX 11 features, it's running completely in software. WARP is a software renderer.

    Oh, it's a software renderer? No wonder it's so slow. I figured it was just doing the DX11 calls in software and the rest in hardware. This is definitely just a stopgap for people who want to monkey with the hangar module, then. Time to build a new rig!
  • GeirGrusom

    Posts: 49

    Posted:
    Posted:
    It's a nice temporary fix, but D3D10 card owners will still need to upgrade at some point.

    WARP cannot do Direct3D 11 calls in software, because a lot of D3D 11 functionality resides in the shader pipeline, You cannot replace parts of it with software: either you pull out the whole thing, or you leave it.

    WARP works by doing some Just-In-Time ocmpilation of x86 code, which means it will, while running, create new code from the application in order to make it run faster. It will use SSE and any other feature it can from your processor in order to get a good framerate. But it will never leverage your graphics hardware. Not even DirectCompute. The reason for this is that it is supposed to be used as a reference for developers. So even if the developer does not have D3D 11.2 features available in hardware, they should be able to tell if they are implementing it correct or not. Good performance in WARP should equal good performance in hardware.

    The old software renderer (<= D3D 9) was called Software Rasterizer. It was so slow it was useless for any purpose except for driver developers. WARP is significantly faster.

    But it's still just software.
  • Lythe

    Posts: 3672

    Posted:
    Posted:
    I may not be affected by this, since I have a DX11 card, but still, since you helped a lot in our community by finding this: I vote for this thread as MVP!
  • Sigma957

    Posts: 2794

    Posted:
    Posted:
    That's awesome.
    I have a DX11 card but still nice work @CoolGuy
    I was there at the 4th age of Mankind...
  • Falba

    Posts: 594

    Posted:
    Posted:

    I may not be affected by this, since I have a DX11 card, but still, since you helped a lot in our community by finding this: I vote for this thread as MVP!

    agree, hope ben listens

    Cutlass - 350R - Hornet F7A-M - Gladiator - Banu Merchantman

    Core i7 4930K @ 4500 MHz (6C|12T) @1.2V (t max: 65 °C)
    4x 2 GB G.Skill PI 2200 MHz CL 7
    2x GTX Titan @ 1265 MHz (boost disabled) --> 3x Dell U2312HM - landscape
  • NomakeWan

    Posts: 17

    Posted:
    Posted:
    Thanks for the clarification on WARP. I suppose that means it's more the fault of my FX-4100 than it is my GTX260. Yet another reason to build a new rig from scratch.
  • Sigma957

    Posts: 2794

    Posted:
    Posted:
    Makes me wonder about my 9800GTX OC 1GB stored on the shelf now...
    I was there at the 4th age of Mankind...
  • Denigenus

    Posts: 25

    Posted:
    Posted:
    Thank you very much @CoolGuy!

    I can confirm that this does indeed work and even on much lower rigs.

    I am currently running:

    Windows 7 x64
    Intel Core 2 Duo 3.0GHz
    6GB RAM
    Nvidia GTS 250 (512MB RAM)

    I was able to get it into the hanger without an issue. I tested various resolutions and detail levels. I was smooth on High with only small stuttering (nothing to make it unplayable) on Very High. I also had slight stuttering on 1920x1080 resolution but anything below that was just fine.

    I know it is just a Band-Aid but it is an awesome one for us that don't have a good enough computer at the moment. Thanks again for this awesome fix!
  • Niarbeht

    Posts: 1996

    Posted:
    Posted:

    Does not matter... when the game will be ready it have have many Dx11 features that what you did it will not work...

    + if you have 50 ships fighting in space your card would not be able to cope anyway :D

    Perhaps you don't understand how software emulation works. This solution only works properly because DX10.1 includes the ability to emulate future DX features, which is exactly what it's doing. It's emulating the DX11 calls that the Hangar Module is making in software.

    You are correct that DX10 cards in general may not be able to cope with the final game, but as we aren't even close to an Alpha this solution is a wonderful stopgap measure to allow more people to test out the modules.
    As long as those testers don't, y'know, complain about frame rates or graphical glitches or anything...
    This is the meta-sandbox. Sandception.
  • Falba

    Posts: 594

    Posted:
    Posted:

    Thank you very much @CoolGuy!

    I can confirm that this does indeed work and even on much lower rigs.

    I am currently running:

    Windows 7 x64
    Intel Core 2 Duo 3.0GHz
    6GB RAM
    Nvidia GTS 250 (512MB RAM)

    I was able to get it into the hanger without an issue. I tested various resolutions and detail levels. I was smooth on High with only small stuttering (nothing to make it unplayable) on Very High. I also had slight stuttering on 1920x1080 resolution but anything below that was just fine.

    I know it is just a Band-Aid but it is an awesome one for us that don't have a good enough computer at the moment. Thanks again for this awesome fix!

    can't really believe... what hangar you run? discount hangar 1 ship? then it might be possible, just have compare-values from business hangar in a high-end system
    Cutlass - 350R - Hornet F7A-M - Gladiator - Banu Merchantman

    Core i7 4930K @ 4500 MHz (6C|12T) @1.2V (t max: 65 °C)
    4x 2 GB G.Skill PI 2200 MHz CL 7
    2x GTX Titan @ 1265 MHz (boost disabled) --> 3x Dell U2312HM - landscape
  • Denigenus

    Posts: 25

    Posted:
    Posted:

    Thank you very much @CoolGuy!

    I can confirm that this does indeed work and even on much lower rigs.

    I am currently running:

    Windows 7 x64
    Intel Core 2 Duo 3.0GHz
    6GB RAM
    Nvidia GTS 250 (512MB RAM)

    I was able to get it into the hanger without an issue. I tested various resolutions and detail levels. I was smooth on High with only small stuttering (nothing to make it unplayable) on Very High. I also had slight stuttering on 1920x1080 resolution but anything below that was just fine.

    I know it is just a Band-Aid but it is an awesome one for us that don't have a good enough computer at the moment. Thanks again for this awesome fix!

    can't really believe... what hangar you run? discount hangar 1 ship? then it might be possible, just have compare-values from business hangar in a high-end system
    Believe! However yes, I am in the Discount Hanger with 1 ship and no, I am not exaggerating my playability. I fully understand that if I probably buy one more ship and upgrade the Hanger, I will be running much slower. But for now I am happy with the results. :)
  • Kala

    Posts: 2

    Posted:
    Posted:

    It's a nice temporary fix, but D3D10 card owners will still need to upgrade at some point.

    I think most of us DX10 card owners realize we will have to upgrade at some point. Currently, all the games I want to play run fine on my card. I'm waiting until closer to game release before I upgrade, because I really don't see the point in doing an upgrade now, then possibly having to do another one later.
  • BoMbY

    Posts: 2286

    Posted:
    Edited:
    Posted:
    Edited:
    As I understand this, this is not running on pure WARP. With pure WARP it should not be able to run with more than 10 FPS on the fastest CPUs. So the two PAK files somehow make the CryEngine able to run DirectX 11.0 on part on DirectX 10.1 hardware and parts emulated with WARP. Just what I had in mind in the other thread - who had thought it would be so easy?

    Edit: Before I forget it: Great work CoolGuy!
    Now, I am become Death, the Destroyer of worlds.

    ― Robert Oppenheimer
  • Falba

    Posts: 594

    Posted:
    Posted:


    Edit: Before I forget it: Great work CoolGuy!

    don't forget to tell ben your vote for MVP :P
    Cutlass - 350R - Hornet F7A-M - Gladiator - Banu Merchantman

    Core i7 4930K @ 4500 MHz (6C|12T) @1.2V (t max: 65 °C)
    4x 2 GB G.Skill PI 2200 MHz CL 7
    2x GTX Titan @ 1265 MHz (boost disabled) --> 3x Dell U2312HM - landscape
  • GeirGrusom

    Posts: 49

    Posted:
    Posted:

    I think most of us DX10 card owners realize we will have to upgrade at some point. Currently, all the games I want to play run fine on my card. I'm waiting until closer to game release before I upgrade, because I really don't see the point in doing an upgrade now, then possibly having to do another one later.

    That is reasonable.
Sign In or Register to comment.