#Driver development interview for a graphics programmer with no driver dev experience

27 messages · Page 1 of 1 (latest)

visual lake
#

Apologies for the cryptic / not very clear topic, but I will potentially have to attend the first interview round (for the role of GPU driver developer).

I have used low level GPU Api's (DirectX12) and primarily use C++, but driver development seems to be a different world (Not using DirectX12, but implementing functions that the DX api exposes and directly interacting with the GPU, and most code is written in plain C).

Should I focus on purely revising and going over what I already know (such as the DirectX12 API, C++ / some C, GP techniques, GPU arch), or focus more on learning about the basic theory of device drivers? I don't have too much time before the interview so not sure how much I will be able to prepare (but at the same time do not want to loose this opportunity).

#

[Should also mention that I basically didn't though GP / GPU programming for a while because of other commitments, so I have forgotten a bit of the basics and am currently going over them]

sacred swift
#

If you know what company this is that's important

#

If they work on windows drivers wddm is a good idea to look into

#

As an example

visual lake
#

Been looking at windows driver dev basics + WDDM and my assumption that DX12 experience would be beneficial here seems to be false frogstare
Theres a ton of stuff to learn here, and with the current time constraints that probably woudn't be possible. At this time I'll go over the very basics, and see what I can do in the interview

sacred swift
#

@visual lake wddm is basically a bottom up

#

Parts of older ones needed for newer

visual lake
# sacred swift Parts of older ones needed for newer

Very interesting. I had a feeling that would be the case (since I think windows in general tends to develop new features over existing / older ones). But still, for getting a good understanding of drivers I feel like the only way is to learn bottom up (so from scratch)

#

The interview requirements stated 'Dx / C/ C++ experience' and nothing specific about driver dev, so hope the interviewer will understand 🙂
Also, on LinkedIn the interviewers job title is "DirectX software engineer". I thought this title was for people who use DirectX for rendering purposes, but guess it can be used for driver dev as well

sacred swift
#

You need both

#

If you work on user mode driver stuff

#

It's basically 1;1 from call to usermode driver

#

With a few changes

#

So that's raw implementation

#

Kernel mode is the more hardwarey backend

visual lake
#

Ah I see, in that case Dx experience would be pretty useful for UMD's. I'll go over the sample projects / code for UMD and see if I can learn the basics of it
and also read the 'trip down graphics pipeline' blog post since I remember it mentioned what the KMD and UMD do in context of the graphics pipeline

visual lake
sacred swift
#

(Which is a big problem-- code that does not crash when it should is effectively a hidden bug)

visual lake
#

Just had the interview, it had nothing to do with drivers and everything to do with C (which was not expected, in my defense when I asked what the interview would be on, they told basics of driver dev)

#

It went so bad that the interview got over in 25 mins and it was supposed to be a hour long 😔 really should be very good at C before attending the interviews

visual lake
#

It has made me realize that being a generalist will really not do. Have to hyperfocus on something, get really good at it, and only then once I've basically mastered it apply for roles

sacred swift
#

Although odd to find hard c stuff

#

I suppose intrinsics are random, so enough of them stumps anyone

visual lake
#

Yeah, will try it. I'll try making some charecter drivers (or) clone mesa and have a look at some beginner friendly issues, should help out with driver + c knowledge
I'll be doing GP as well, so just trying out both and then determine which one to focus on