Code Monkey home page Code Monkey logo

Comments (10)

JSandusky avatar JSandusky commented on May 11, 2024 1

HD4000 crashes in setting textures the second frame (built from source):

D3D11 CORRUPTION: ID3D11DeviceContext::PSSetShaderResources: Third parameter, array index 0 corrupt or unexpectedly NULL. [ MISCELLANEOUS CORRUPTION #15: CORRUPTED_PARAMETER3]

From Imgui::RHI::RenderDrawData the specific ImGui window is the one labeled "Viewport".

If the debugger is attached I can just continue my way through it and things will survive, but any attempt to run without debugging it'll halt.

Trying to track it down, but just from what I can observe in a failed start it looks like the first frame is okay and is drawn into a small fraction of the actual viewport, then the second frame crashes, so I'm looking for it assuming it's a sequence issue with what ImGui has been given now being invalid.

Edit:

Yeah, that's it. In Widget_Viewport.cpp there's a call to Renderer::SetResolution after a render-target resource has been given to the above ImGui::Image call to draw the viewport and that's wiping out the render-target ... if it works elsewhere then I'm guessing overly-pedantic Intel driver woes.

from spartanengine.

PanosK92 avatar PanosK92 commented on May 11, 2024

Hi zhouxs1023,

I'm glad you like the engine and you're welcome!

XInput 1.4 is part of the Windows SDK which is used for Windows 8 and 10. Windows 7 appears to be using XInput 1.3. I am not "officialy" supporting Windows 7 but downloading xinput1_4.dll might still work, and even if it doesn't, it's used for Xbox controller input, which I presume you don't need.

Getting that white window though is most likely the renderer failing to initialize. I don't have a Windows 7 machine to work with but I've submitted some changes that might help you track the source of the problem.

The engine will now log everything into log.txt until the renderer initializes successfully (at which point logging will be rendered to the log window in the editor). Each entry inside log.txt includes the namespace as well as the function it originated from.
capture
capture2

On your machine, you should be getting some errors which might give you an idea as to what might be going wrong. If you manage to fix the issue, feel free to do a pull request. If you only have some clues, let me know and I'll see what I can do 😉

Thanks for letting me know about this zhouxs1023 👍

from spartanengine.

zhouxs1023 avatar zhouxs1023 commented on May 11, 2024

I have downloaded what you provided editor release,and xinput1_4.dll come from internet ,I run editor on my computer,but can not run successfully, error as below:
error
I haved changed xinput1_3.dll to xinput1_4.dll from system32 folder on my machine,but can still not run successfully , error as below:
error-1

from spartanengine.

PanosK92 avatar PanosK92 commented on May 11, 2024

Excellent,

This is the function which fails
https://github.com/PanosK92/Directus3D/blob/43d2047e7f7b3f13db26259242bd9ae6daadbf03/Engine/RHI/D3D11/D3D11_Device.cpp#L83

If you tweak the parameters being passed to it, you should be able to get a device setup which is supported by your GPU. If not, can you please let me know what is your GPU?

from spartanengine.

ndrshn avatar ndrshn commented on May 11, 2024

Hi Panos,

I'm getting same result when I want to run. no log.txt created. I tried to run it with git bash console and recieved "Segmentation fault". What should I do?

Thanks in advance.

Btw;
OS: win10
ide: vs 2017

from spartanengine.

PanosK92 avatar PanosK92 commented on May 11, 2024

Hi ndrshn and thanks for letting me know 👍

So guys, I got my hands on my ancient potato laptop and it failed to start as well.
It's likely that this is the same issue, I'll investigate and commit a fix 😉

from spartanengine.

JSandusky avatar JSandusky commented on May 11, 2024

It's a bit of a tangent, but the swap-chain creation isn't very robust. Tearing flag isn't supported on older DX11 (integrated intel's in particular), so those older devices can't start the editor either.

If the first try fails, I try again changing the swapchain's m_flags (so resize works) to remove the tearing flag and that works fine on an IvyBridge IntelHD4000.

Performance is pitiful (15fps) once it gets up and running (probably too much dead post-process or w/e), but that's a different matter really.

from spartanengine.

PanosK92 avatar PanosK92 commented on May 11, 2024

Hello everyone 😃

It turns out that it was a combination of issues causing the engine to fail on startup.
Issues that the three of you mentioned as well as some other ones.

[zhouxs1023] Fixed an issue were the default swap-chain swap effect that was used (Swap_Flip_Discard) was only supported on Windows 10. The engine will now check if it's running on Windows 10 and if it's not, it will fall back to Swap_Discard, which should be okay for Windows 7.

[ndrshn] Fixed an issue were some code paths would simply crash upon device creation failure. Errors are now successfully handled and logged, although it will hopefully never come to that as device creation has been improved as well.

[JSandusky] Thank you for your accurate insight, the tearing flag was indeed part of the swap-chain creation problem and the flag selection has been tweaked to take the adapter into account.

Extra issues:

  • Fixed a bug where Swap_Flip_Discard was also not supported by Intel adapters. Upon detecting an Intel adapter, the engine will now fall back to Swap_Discard.
  • Fixed a bug where swapchain was not presenting with SwapChain_Allow_Tearing in case it was successfully enabled.
  • Fixed a bug where device creation was using the default adapter, it will now use the adapter with the highest VRAM, which is most likely the best available dapter.
  • Adapter detection has been moved to the very beggining of the device creation so that all available adapters are visible in log.txt, even if the renderer fails to initialize.

Here is the engine, running on my ancient potato laptop, using an Intel HD Graphics 3000.
53359588_388289675055055_1043514003084541952_n

Please let me know if the above fixes worked for you.

Also, thanks for taking the time to let me know about these issues 👍

from spartanengine.

PanosK92 avatar PanosK92 commented on May 11, 2024

Moved ImGui::Image() after Renderer::SetResolution(), which should hopefully work.
Thanks once again JSandusky!

from spartanengine.

PanosK92 avatar PanosK92 commented on May 11, 2024

Hi @zhouxs1023,

The reported issue (as well as the issues reported by ndrshn and JSandusky) have been addressed.
As one week has passed since your last feedback, I'll assume you have no more issues and close this issue.

Thanks

from spartanengine.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.