Figuring out the shader type from a blob

If you work with tools that manipulate shaders, you might find yourself at some point wondering what kind of shader you’re dealing with if all you have is a blob of bytes. Using the shader reflection APIs, you can check whether the shader is a pixel shader, vertex shader, etc, by looking at the Version…


Performance considerations for DirectX 12 on NVidia hardware

I posted a link to similar content last week for Intel. The Do’s and Don’ts list from at the NVidia site covers additional content for NVidia hardware, and includes other considerations for command lists, engine architecture, swap chains, etc. Enjoy!


Performance considerations for DirectX 12 on Intel hardware

Wolfgang Engel writes Performance Considerations for Resource Binding in Microsoft DirectX 12 for the Intel Developer Zone site. There is some good information there and some material to think about various tradeoffs that can come in handy. Enjoy!


HLSL and Visual Studio

Tim Jones has recently published a Visual Studio extension that adds a number of features to the HLSL editor – HLSL Tools for Visual Studio. Read the announcement for details on what’s available: much better navigation and errors as you type are my two favorites. You can find the extension in the Visual Studio Gallery…


Graphics Education

So, learning about graphics is a journey (a life journey, for some!). Books, papers, samples, games, demos, friends… Here’s a new resource you should probably subscribe to if you’re into that: the Microsoft DirectX12 Graphics Education channel in YouTube. Yes, it has stuff on DirectX12 specifically, but you’ll also find videos on porting from DirectX11…


Channel 9 – OpenGLES on Windows with ANGLE

Going Native has a new video about OpenGLES on Windows with ANGLE, specifically how to get going with OpenGLES for Windows Store apps. Get a bit of history as well as a walkthrough of what you get from NuGet packages and how to glue things together, all courtesy of Cooper. Enjoy!


Interrupting shader compilation

Unfortunately, there really isn’t a way to interrupt compilation once it has started. Why would you ever want to do that? Well, if you’re doing compilation (and you really should try to compile offline, although it’s impossible in some cases), the user may decide to switch to a different application while you’re busy. At that…


How to find your XAML Page object in the debugger

Taking a quick break from compiler performance to give a short debugging tip. If you’re debugging a managed application that is based on the typical frame navigation that the built-in templates and samples use and would like to find your the page that is currently being displayed, you can simply paste this into your Watch…


Performance for building OpenGL ES and ANGLE shaders

Today’s note is a simple reminder that if you’re using OpenGL ES and/or ANGLE, you’re not exempt from the performance concerns I’ve discussed before. Launching quickly is still important for user experience, and developers want to provide a good first impression! The classic OpenGL ES model is to compile the shaders from text. There is…


Compiling shaders vs creating shaders

Last time I talked about shader compilation at launch time, but I wasn’t being precise about shader compilation and shader creation. Shader compilation is the act of taking HLSL source code (i.e. text) and producing a bytecode representation. The main API to do this is D3DCompile. This bytecode can be used immediately or persisted to…