Chasing DirectX versions

We’re a small-medium size enterprise (~50 devs), working on several DirectX 9 applications. (not games)

DirectX 10 and 11 both were deep interface overhauls, as DX12 will probably be. We didn’t upgrade to any of them, and since VS2013 (now migrating) working with DX9 is getting very inconvenient to say the least – while DX9 is not technically deprecated, MS is very actively pushing devs away from it.

I wonder, how are other dev shops handling the DX interface instability? Are you actually re-writing your graphics engine every ~2-3 years? Are you using 3rd party middleware? Both OGRE and Unity seem like tons of code, have design goals I don’t care about (cross platform), and I’m not even sure their interface is more stable. Are there other ways I’m missing?

Important note: We’re not developing AAA games, and we’ve not much use for fancy shaders or a need to squeeze every bit of performance from modern hardware. Our products just display data mostly in 3D.


it seems some clarifications are in order. The current state of graphics development is that MS issues a completely overhauled DX interface roughly every ~2-3 years. It seems – whether deliberately or not – they are targeting major game shops (or even: game-engine shops), which would happily devote the needed HR to rewrite the 3D graphics engine to conform to the latest and greatest.

Our shop (and I suspect many others) is nothing like that. We present a lot of data in 3D, but do not use exotic shaders and don’t care about the latest consoles or GPUs. It makes no business sense for us to rewrite our rendering engine for new features we don’t care about – and yet the old engines are becoming deprecated fast. A DX dev from MS writes:

the ability to support a Direct3D 9 application at all is diminished on the latest versions of Windows, and that’s likely to continue

And regarding D3DX – while not technically deprecated, is very hard to work with on VS2013. MSDN diplomatic Quote:

Investigate alternate solutions for working with the Direct3D API.

I’m curious: how are other shops with similar 3D needs handling this? e.g., how are you guys in the CAD business doing?

7

Direct3D changes frequently because graphics hardware is constantly evolving. So at some point, Microsoft can no longer maintain compatibility with older D3D versions. This is why fixed-function rendering is gone. Newer hardware doesn’t support it, so it cannot be exposed in the API any longer.

Now from what you’ve explained, your use of 3D doesn’t seem very demanding, which probably means you could write a small interface layer to insulate your application from the rendering back-end. If you design the rendering interface well, the amount of actually API dependant code is very small. Even for a large game engine like Ogre3D, if you look in the source code at the API specific folder, you’ll see that it consistes of some dozen files. Probably less than 1% of project’s code.

With an interface layer between the rendering API and application you can add software emulation in the future if a hardware feature goes away. E.g.: Simulate the fixed pipeline with shaders; So maybe use the API change opportunity for a possible refactoring of the renderer module in a way to make it mode API agnostic.

2

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa

Chasing DirectX versions

We’re a small-medium size enterprise (~50 devs), working on several DirectX 9 applications. (not games)

DirectX 10 and 11 both were deep interface overhauls, as DX12 will probably be. We didn’t upgrade to any of them, and since VS2013 (now migrating) working with DX9 is getting very inconvenient to say the least – while DX9 is not technically deprecated, MS is very actively pushing devs away from it.

I wonder, how are other dev shops handling the DX interface instability? Are you actually re-writing your graphics engine every ~2-3 years? Are you using 3rd party middleware? Both OGRE and Unity seem like tons of code, have design goals I don’t care about (cross platform), and I’m not even sure their interface is more stable. Are there other ways I’m missing?

Important note: We’re not developing AAA games, and we’ve not much use for fancy shaders or a need to squeeze every bit of performance from modern hardware. Our products just display data mostly in 3D.


it seems some clarifications are in order. The current state of graphics development is that MS issues a completely overhauled DX interface roughly every ~2-3 years. It seems – whether deliberately or not – they are targeting major game shops (or even: game-engine shops), which would happily devote the needed HR to rewrite the 3D graphics engine to conform to the latest and greatest.

Our shop (and I suspect many others) is nothing like that. We present a lot of data in 3D, but do not use exotic shaders and don’t care about the latest consoles or GPUs. It makes no business sense for us to rewrite our rendering engine for new features we don’t care about – and yet the old engines are becoming deprecated fast. A DX dev from MS writes:

the ability to support a Direct3D 9 application at all is diminished on the latest versions of Windows, and that’s likely to continue

And regarding D3DX – while not technically deprecated, is very hard to work with on VS2013. MSDN diplomatic Quote:

Investigate alternate solutions for working with the Direct3D API.

I’m curious: how are other shops with similar 3D needs handling this? e.g., how are you guys in the CAD business doing?

7

Direct3D changes frequently because graphics hardware is constantly evolving. So at some point, Microsoft can no longer maintain compatibility with older D3D versions. This is why fixed-function rendering is gone. Newer hardware doesn’t support it, so it cannot be exposed in the API any longer.

Now from what you’ve explained, your use of 3D doesn’t seem very demanding, which probably means you could write a small interface layer to insulate your application from the rendering back-end. If you design the rendering interface well, the amount of actually API dependant code is very small. Even for a large game engine like Ogre3D, if you look in the source code at the API specific folder, you’ll see that it consistes of some dozen files. Probably less than 1% of project’s code.

With an interface layer between the rendering API and application you can add software emulation in the future if a hardware feature goes away. E.g.: Simulate the fixed pipeline with shaders; So maybe use the API change opportunity for a possible refactoring of the renderer module in a way to make it mode API agnostic.

2

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật