Git Product home page Git Product logo

d3d8to11's People

Contributors

michael-fadely avatar muzzarino avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

d3d8to11's Issues

Remove ABI-dependent fields from Direct3DDevice8

This will make long-term dependent project compatibility less of a pain.

i.e.

  1. Remove all the std:: collections from the header, make this a real interface again
  2. Add methods that return things like the Direct3D 11...
    • Device
    • Context
    • Parameters
  3. Avoid changing them

Make all subsequent mip levels available from Direct3DTexture8::LockRect

In Direct3D 8 and 9, a pointer to a contiguous buffer is provided when a level is locked. This contiguous buffer is encompassing of all the mipmap levels including the level asked for, and all the levels to follow.

Some games, such as Phantasy Star Online: Blue Burst exploit this to populate all mipmap levels simultaneously.

There is a branch called lock-rect-all-mips which is experimenting with a fix.

How to see if it works?

May be a somewhat stupid question but how do i see it did work?

I am using it on an mmorpg, where i have the source code from and can compile the entire game. The game sadly is so old it is a 32 bit game with DX8.1

I Put your files after compiling to my games Bin folder where an original d3d8.dll file was located and replaced all with your files, but ingame i see no difference and my ingame console still says directx8

This is my current game folder structure with your files:
r

And this is the open public source code link if that helps understanding:
https://github.com/openlastchaos/lastchaos-source-client/blob/master/Engine/Graphics/Gfx_Direct3D.cpp

Arma: Cold War Assault - crash at startup

At startup there's an error message:

Cannot create 3D device:
Adapter 0 () Fullscreen
Resolution 1920x1080, format A8R8G8B8/D24S8, refresh 60 Hz.
Error D3DERR_INVALIDCALL

Once press OK the application is closed.

Shaders have too many runtime branches

Current shader implementations use a combination of runtime branching and preprocessor magic to compile the desired shader permutation required for rendering.

Typical uses of runtime branching are:

  • Fog mode - still not sure why I made this runtime
  • Alpha blending modes - for optimizing opaque data out of OIT buffer
  • Alpha rejection toggle, comparison mode
  • Texture stages et al.
  • Light enabled state, type (point, spot, directional)

To greatly reduce runtime branching, shader source code generation could be employed to generate task-optimized shaders that already understand these conditions.

These shaders need to be uniquely and reliably identifiable at runtime. This is currently handled with a huge 64-bit bitfield. By taking runtime checks and making them shader permutations, we exhaust the number of reasonable bits we can use in that bitfield. An optimized multiple-key lookup mechanism might be a good idea (conceptually, std::unordered_map<bitfield_a, std::unordered_map<bitfield_b, shader>>).

I'd like this done in such a way that snippets of shader code--which would be used to produce full shaders--can be modified and re-loaded at runtime for rapid iteration.

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.