mesa/src/gallium/drivers/iris
Danylo Piliaiev 3f9a6011a6 iris: Fix value of out-of-bounds accesses for vertex attributes
Having VERTEX_BUFFER_STATE.BufferSize greater than the size of
a bound vertex buffer allows shader to read uninitialized vertex
attributes from BO, instead of allowing hardware to return zeroes
on out-of-bounds access.

OpenGL spec "6.4 Effects of Accessing Outside Buffer Bounds" says:

"Robust buffer access can be enabled by creating a context with robust access
 enabled through the window system binding APIs. When enabled, any command
 unable to generate a GL error as described above, such as buffer object accesses
 from the active program, will not read or modify memory outside of the data
 store of the buffer object and will not result in GL interruption or termination.
 Out-of-bounds reads may return values from within the buffer object or zero
 values."

Fixes three webgl tests:
 conformance/rendering/out-of-bounds-array-buffers.html
 conformance2/rendering/out-of-bounds-index-buffers-after-copying.html
 conformance2/rendering/element-index-uint.html

See #1996

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3427>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3427>
2020-01-21 09:52:40 +00:00
..
Android.mk iris: build android libmesa_iris for gen12 2019-08-28 13:38:34 -07:00
driinfo_iris.h iris: Add support for the always_flush_cache=true debug option. 2019-09-09 11:55:27 -07:00
iris_batch.c intel/decoder: Make get_state_size take a full 64-bit address and a base 2019-12-10 19:10:49 -08:00
iris_batch.h iris/gen12: Write GFX_AUX_TABLE base address register 2019-10-28 00:09:14 -07:00
iris_binder.c iris: Handle binding table in the driver 2019-06-03 14:14:45 -07:00
iris_binder.h iris: little bits of compute basics 2019-02-21 10:26:09 -08:00
iris_blit.c iris: Allow HiZ for copy_region sources 2020-01-04 12:25:55 -08:00
iris_blorp.c blorp: Pass the VB size to the VF cache workaround 2019-12-05 10:59:10 -06:00
iris_border_color.c iris: Destroy the border color pool 2019-02-21 10:26:10 -08:00
iris_bufmgr.c iris: Allow max dynamic pool size of 2GB for gen12 2019-12-02 16:34:12 -08:00
iris_bufmgr.h iris: try to set the specified tiling when importing a dmabuf 2019-11-04 17:59:52 +00:00
iris_clear.c util: Move gallium's PIPE_FORMAT utils to /util/format/ 2019-11-14 10:47:20 -08:00
iris_context.c iris: INTEL performance query implementation 2019-12-10 17:02:58 -08:00
iris_context.h iris: handle new PIPE_CONTROL field 2020-01-16 11:48:11 +02:00
iris_defines.h iris: Implement new way for setting streamout buffers. 2019-10-29 19:20:25 +00:00
iris_disk_cache.c Move blob from compiler/ to util/ 2019-09-19 19:56:22 +00:00
iris_draw.c iris: Use mocs from isl_dev. 2019-11-12 20:41:52 +00:00
iris_fence.c iris: Print warning and return *out = NULL when fd to syncobj fails 2020-01-15 14:47:46 -08:00
iris_fence.h iris: Make a iris_batch_reference_signal_syncpt helper function. 2019-02-21 10:26:11 -08:00
iris_formats.c iris: Disable ASTC 5x5 support on Gen9 for now. 2020-01-03 18:06:38 -08:00
iris_genx_macros.h iris: Use 3DSTATE_CONSTANT_ALL when possible. 2019-12-04 20:48:25 +00:00
iris_genx_protos.h iris/gen12: Write GFX_AUX_TABLE base address register 2019-10-28 00:09:14 -07:00
iris_monitor.c iris: separating out common perf code 2019-12-10 17:02:58 -08:00
iris_monitor.h iris: minor restyling 2019-08-10 00:16:45 -07:00
iris_perf.c i965/iris/perf: factor out frequency register capture 2019-12-18 14:23:17 +02:00
iris_perf.h iris: separating out common perf code 2019-12-10 17:02:58 -08:00
iris_performance_query.c iris: INTEL performance query implementation 2019-12-10 17:02:58 -08:00
iris_pipe.h iris: Make a gl_shader_stage -> pipe_shader_stage helper function 2019-04-23 00:24:08 -07:00
iris_pipe_control.c iris: Add support for the always_flush_cache=true debug option. 2019-09-09 11:55:27 -07:00
iris_program.c iris: Set nir_shader_compiler_options::unify_interfaces. 2020-01-03 00:41:50 +00:00
iris_program_cache.c iris: Change keybox parenting 2019-11-22 09:50:59 -08:00
iris_query.c iris/query: Implement PIPE_QUERY_GPU_FINISHED 2020-01-06 12:43:14 +02:00
iris_resolve.c iris: Allow HiZ for copy_region sources 2020-01-04 12:25:55 -08:00
iris_resource.c iris: Avoid replacing backing storage for buffers with no contents 2019-12-22 16:18:30 -08:00
iris_resource.h iris: Allow HiZ for copy_region sources 2020-01-04 12:25:55 -08:00
iris_screen.c iris: Advertise PIPE_CAP_NATIVE_FENCE_FD 2020-01-15 14:47:46 -08:00
iris_screen.h iris: Add support for the always_flush_cache=true debug option. 2019-09-09 11:55:27 -07:00
iris_state.c iris: Fix value of out-of-bounds accesses for vertex attributes 2020-01-21 09:52:40 +00:00
Makefile.sources iris: INTEL performance query implementation 2019-12-10 17:02:58 -08:00
meson.build iris: Alphabetize source files after iris_perf.c was added 2019-12-13 11:03:13 -08:00