Jump to content
  • Advertisement

Aleksid1

Member
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Aleksid1

  • Rank
    Newbie

Personal Information

  • Role
    Programmer
  • Interests
    Programming
  1. Exception (dividing by zero) occurs inside CreateDevice() call, in other words it occurs in DirectX or NVIDIA drivers. And CreateDevice() doesn't return IDirect3DDevice9. So our app can't correctly work. If we disable globally all FPU exceptions in our app, CreateDevice() works correctly and returns IDirect3DDevice9. We use Delphi (Pascal) to write our code.
  2. Thanks for your replies! You're right, we need double-precision for FPU so we use D3DCREATE_FPU_PRESERVE. If I remove D3DCREATE_FPU_PRESERVE flag, FPU exception doesn't appear. Some parts of our app were initially written in 2006. And old DirectX documention said: "Indicates that the application needs either double-precision floating-point unit (FPU) or FPU exceptions enabled. Microsoft® Direct3D® sets the FPU state each time it is called. " We thought that it's OK, we handle all exceptions and if some DirectX call generates FPU exception due to incorrect values we will handle that situation. The latest DirectX documention strictly warns for D3DCREATE_FPU_PRESERVE: "Portions of Direct3D assume floating-point unit exceptions are masked; unmasking these exceptions may result in undefined behavior." I still think that it's incorrect that even simple and basic call CreateDevice() may produce FPU exception in the new update of Windows 10. It's strange that double-precision is firmly linked with FPU exceptions now.
  3. Yes, of course. I use D3DCREATE_FPU_PRESERVE
  4. Hi, With the latest update of Windows 10 (April 2018) and laptops with dual graphics (NVIDIA + Intel) we have a critical problem - FPU exception ("floating point division by zero") when we call IDirect3D9::CreateDevice() We found a temporary solution - globally disable all FPU exceptions in our app by calling Set8087CW($133F) when our app is started. I'm sure that our code which works with DirectX is correct and there is no mistakes in parameters which I pass to CreateDevice(). This problem didn't happen with any previous version of Windows 10 or with Windows 8/7/Vista/XP. Also this problem doesn't occur if manually choose Intel video card for our app. Or run our app on external monitor on NVIDIA card. And no problems with AMD cards at all. Our app is written on Delphi (Pascal). We received many complains from our customers. Should I report to NVIDIA or Microsoft about this problem?
  5. Solution for Intel + NVIDIA works fine (NvOptimusEnablement) But Intel + AMD (AMD + AMD) ignore flag AmdPowerXpressRequestHighPerformance Why?
  6. Many thanks for your advice!
  7. Hi, We sell presentation app which uses Direct3D 9. It works slow on laptops with dual video cards (Intel + NVIDIA or AMD). We have to ask users to manually choose NVIDIA video card for our app. Is there any API to automatically select dedicated NVIDIA/AMD video card in our app on Windows 10? Thanks,
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!