I've read through this question but it seems the solution to that is to draw a full-screen quad. Sampling a texture shouldn't involve vertex input or the rasteriser at all, it's just reading a value from a buffer/image. I want to do screen picking and I've thought about a couple of ways to do this, but they all involve first rasterising the scene objects onto a picking buffer and writing the object ID's. With the help of the depth buffer the final value should be the topmost object. After the first part of rendering into the picking buffer/image is done I then need to sample the value at the mouse coordinates/position. I can either read the entirety of the picking buffer back to host and sample it in my C++ code or I can have a shader that specifically samples an image at a particular point. Can this be done in a compute shader? I send in a point value and the shader samples the texture. There shouldn't be any need for the graphics pipeline to simply sample an image.