Jump to content
  • Advertisement
Sign in to follow this  
Zipster

[DX10] D3DX10LoadTextureFromTexture broken on ATI, any good alternative?

This topic is 3988 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

We're experiencing problems with the D3DX10LoadTextureFromTexture function on ATI hardware (specifically the HD 2600XT and HD 2900XT). If you try to load into a texture that's a different size than the source, or use a destination box that is smaller than the source, weird stride-like artifacts appear. The only thing that works is a straight copy, with no down-sampling or cropping (which defeats the purpose of this function). What we're trying to do is take advantage of rich saved games on Vista by copying the back-buffer into a 256x256 texture. This function appeared to be the easiest approach and works on nVidia, but we need to use something different until it's fixed on ATI. The other method that would work is to render the back-buffer texture into a smaller render target, however this isn't as nice a single function call. I'm not as familiar with DX10 as I am with DX9, so does anyone know of any combination of similar texture functions that would achieve the same effect? If all else fails I might have to fall back on the rendering :(

Share this post


Link to post
Share on other sites
Advertisement
Out of curiousity, does this work on the RefRast? With D3D10's more rigid specifications this sounds more like a bug on ATI's part. Unless the strange stide artifacts are due to a bad parameter that Nvidia's drivers silently correct for you..?

I'm not aware of any other simple alternatives - manual downsampling either on the GPU or CPU is probably your only option.

hth
Jack

Share this post


Link to post
Share on other sites
Unfortunately, the reference rasterizer was a bit too slow to be practical for our graphics engine. I sat around 30 minutes just trying to get through initialization before I gave up.

I tried using GDI+ to scale the image, but that was a complete wash. It only supports ARGB/XRGBA (not RGBA/RGBX which is what I needed), and either GDI+ or DX10 or both completely ignores negative height in bitmap headers, indicating a vertical flip. So I ended up with a correctly sized image that had the wrong colors and was vertically inverted.

In the end, I settled on the rendering technique. Not too happy with that, but it works across the board and I can take this off my buglist :)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!