Mesa (master): st/nine: Add format checks to create_zs_or_rt_surface

Axel Davy axeldavy at kemper.freedesktop.org
Fri Feb 12 22:27:25 UTC 2016


Module: Mesa
Branch: master
Commit: dbcb4f46ad792ed4f0f3cc64449ccd6288a6f386
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dbcb4f46ad792ed4f0f3cc64449ccd6288a6f386

Author: Axel Davy <axel.davy at ens.fr>
Date:   Tue Jan 26 18:21:26 2016 +0100

st/nine: Add format checks to create_zs_or_rt_surface

Returns INVALIDCALL when trying to create a surface
of unsupported format.

In practice, apps are supposed to check for format
support before trying to create a render target
of that format. However some bad behaving apps
could just try to create the surface and deduce if
it failed that it wasn't supported.

Signed-off-by: Axel Davy <axel.davy at ens.fr>
Reviewed-by: Patrick Rudolph <siro at das-labor.org>

---

 src/gallium/state_trackers/nine/device9.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c
index b6e75b4..3ebff3a 100644
--- a/src/gallium/state_trackers/nine/device9.c
+++ b/src/gallium/state_trackers/nine/device9.c
@@ -1126,6 +1126,9 @@ create_zs_or_rt_surface(struct NineDevice9 *This,
                                                templ.nr_samples, templ.bind,
                                                FALSE);
 
+    if (templ.format == PIPE_FORMAT_NONE && Format != D3DFMT_NULL)
+        return D3DERR_INVALIDCALL;
+
     desc.Format = Format;
     desc.Type = D3DRTYPE_SURFACE;
     desc.Usage = 0;




More information about the mesa-commit mailing list