Mesa (master): intel/blorp: Fix compiler warning about num_layers.

2018-03-20 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 4d8b476fa9a01aef94dc2d83e9306ba7c5adbe7f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4d8b476fa9a01aef94dc2d83e9306ba7c5adbe7f

Author: Eric Anholt 
Date:   Sat Feb 10 10:29:56 2018 +

intel/blorp: Fix compiler warning about num_layers.

The compiler doesn't notice that the condition for num_layers to be
undefined already defined it above (as our assert checked in a debug
build).

v2: Move the pair of assignments to one outside of the block.

Reviewed-by: Lionel Landwerlin 

---

 src/mesa/drivers/dri/i965/brw_blorp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c 
b/src/mesa/drivers/dri/i965/brw_blorp.c
index 72c5d194ef..72578b6ea5 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp.c
+++ b/src/mesa/drivers/dri/i965/brw_blorp.c
@@ -1426,8 +1426,8 @@ brw_blorp_clear_depth_stencil(struct brw_context *brw,
   } else {
  level = irb->mt_level;
  start_layer = irb->mt_layer;
- num_layers = fb->MaxNumLayers ? irb->layer_count : 1;
   }
+  num_layers = fb->MaxNumLayers ? irb->layer_count : 1;
 
   stencil_mask = ctx->Stencil.WriteMask[0] & 0xff;
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: add support for VK_EXT_depth_range_unrestricted

2018-03-20 Thread Samuel Pitoiset
Module: Mesa
Branch: master
Commit: f0211155f14c890e0c771a4fb51663c48eca983c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f0211155f14c890e0c771a4fb51663c48eca983c

Author: Samuel Pitoiset 
Date:   Fri Mar 16 16:39:27 2018 +0100

radv: add support for VK_EXT_depth_range_unrestricted

This extension removes the restrictions on minDepth/maxDepth,
minDepthBounds/maxDepthBounds and VkClearDepthStencilValue::depth.

The following CTS tests now pass:

dEQP-VK.glsl.builtin_var.fragdepth.line_list_d32_sfloat_large_depth
dEQP-VK.glsl.builtin_var.fragdepth.point_list_d32_sfloat_large_depth
dEQP-VK.glsl.builtin_var.fragdepth.triangle_list_d32_sfloat_large_depth
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
dEQP-VK.draw.inverted_depth_ranges.depthclamp_depth_range_unrestricted

Signed-off-by: Samuel Pitoiset 
Reviewed-by: Bas Nieuwenhuizen 

---

 src/amd/vulkan/radv_extensions.py |  1 +
 src/amd/vulkan/radv_pipeline.c| 22 ++
 2 files changed, 23 insertions(+)

diff --git a/src/amd/vulkan/radv_extensions.py 
b/src/amd/vulkan/radv_extensions.py
index bfee1f76fa..896cc62459 100644
--- a/src/amd/vulkan/radv_extensions.py
+++ b/src/amd/vulkan/radv_extensions.py
@@ -86,6 +86,7 @@ EXTENSIONS = [
 Extension('VK_KHR_xlib_surface',  6, 
'VK_USE_PLATFORM_XLIB_KHR'),
 Extension('VK_KHR_multiview', 1, True),
 Extension('VK_EXT_debug_report',  9, True),
+Extension('VK_EXT_depth_range_unrestricted',  1, True),
 Extension('VK_EXT_discard_rectangles',1, True),
 Extension('VK_EXT_external_memory_dma_buf',   1, True),
 Extension('VK_EXT_external_memory_host',  1, 
'device->rad_info.has_userptr'),
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index 89c5e69941..dd5baec117 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -2198,9 +2198,11 @@ radv_pipeline_generate_depth_stencil_state(struct 
radeon_winsys_cs *cs,
const VkPipelineDepthStencilStateCreateInfo *vkds = 
pCreateInfo->pDepthStencilState;
RADV_FROM_HANDLE(radv_render_pass, pass, pCreateInfo->renderPass);
struct radv_subpass *subpass = pass->subpasses + pCreateInfo->subpass;
+   struct radv_shader_variant *ps = 
pipeline->shaders[MESA_SHADER_FRAGMENT];
struct radv_render_pass_attachment *attachment = NULL;
uint32_t db_depth_control = 0, db_stencil_control = 0;
uint32_t db_render_control = 0, db_render_override2 = 0;
+   uint32_t db_render_override = 0;
 
if (subpass->depth_stencil_attachment.attachment != 
VK_ATTACHMENT_UNUSED)
attachment = pass->attachments + 
subpass->depth_stencil_attachment.attachment;
@@ -2242,10 +2244,30 @@ radv_pipeline_generate_depth_stencil_state(struct 
radeon_winsys_cs *cs,
db_render_override2 |= 
S_028010_DISABLE_SMEM_EXPCLEAR_OPTIMIZATION(extra->db_stencil_disable_expclear);
}
 
+   db_render_override |= 
S_02800C_FORCE_HIS_ENABLE0(V_02800C_FORCE_DISABLE) |
+ 
S_02800C_FORCE_HIS_ENABLE1(V_02800C_FORCE_DISABLE);
+
+   if (pipeline->device->enabled_extensions.EXT_depth_range_unrestricted &&
+   !pCreateInfo->pRasterizationState->depthClampEnable &&
+   ps->info.info.ps.writes_z) {
+   /* From VK_EXT_depth_range_unrestricted spec:
+*
+* "The behavior described in Primitive Clipping still applies.
+*  If depth clamping is disabled the depth values are still
+*  clipped to 0 ≤ zc ≤ wc before the viewport transform. If
+*  depth clamping is enabled the above equation is ignored and
+*  the depth values are instead clamped to the VkViewport
+*  minDepth and maxDepth values, which in the case of this
+*  extension can be outside of the 0.0 to 1.0 range."
+*/
+   db_render_override |= S_02800C_DISABLE_VIEWPORT_CLAMP(1);
+   }
+
radeon_set_context_reg(cs, R_028800_DB_DEPTH_CONTROL, db_depth_control);
radeon_set_context_reg(cs, R_02842C_DB_STENCIL_CONTROL, 
db_stencil_control);
 
radeon_set_context_reg(cs, R_028000_DB_RENDER_CONTROL, 
db_render_control);
+   radeon_set_context_reg(cs, R_02800C_DB_RENDER_OVERRIDE, 
db_render_override);
radeon_set_context_reg(cs, R_028010_DB_RENDER_OVERRIDE2, 
db_render_override2);
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: only enable one channel when exporting prim id

2018-03-20 Thread Samuel Pitoiset
Module: Mesa
Branch: master
Commit: 4e9b0b39b592e2bf79ac577ec6cd091a924359ae
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e9b0b39b592e2bf79ac577ec6cd091a924359ae

Author: Samuel Pitoiset 
Date:   Tue Mar 20 10:07:30 2018 +0100

radv: only enable one channel when exporting prim id

It's a 32-bit integer like the layer.

Signed-off-by: Samuel Pitoiset 
Reviewed-by: Bas Nieuwenhuizen 

---

 src/amd/vulkan/radv_nir_to_llvm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_nir_to_llvm.c 
b/src/amd/vulkan/radv_nir_to_llvm.c
index ad046adfdb..c8d383e021 100644
--- a/src/amd/vulkan/radv_nir_to_llvm.c
+++ b/src/amd/vulkan/radv_nir_to_llvm.c
@@ -2357,7 +2357,7 @@ handle_vs_outputs_post(struct radv_shader_context *ctx,
for (unsigned j = 1; j < 4; j++)
values[j] = ctx->ac.f32_0;
 
-   radv_export_param(ctx, param_count, values, 0xf);
+   radv_export_param(ctx, param_count, values, 0x1);
 
outinfo->vs_output_param_offset[VARYING_SLOT_PRIMITIVE_ID] = 
param_count++;
outinfo->export_prim_id = true;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: fix out of tree autotools build

2018-03-20 Thread Lionel Landwerlin
Module: Mesa
Branch: master
Commit: 5770e1d89e0eb49eb3c9547e8657d636b6e7e5d7
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5770e1d89e0eb49eb3c9547e8657d636b6e7e5d7

Author: Lionel Landwerlin 
Date:   Tue Mar 20 18:31:53 2018 +

i965: fix out of tree autotools build

Fixes: 2d2b15fbcab ("i965: fix autotools/android build")
Signed-off-by: Lionel Landwerlin 
Reviewed-by: Emil Velikov 
Reviewed-by: Mathias Fröhlich 

---

 src/mesa/drivers/dri/i965/Makefile.am | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/Makefile.am 
b/src/mesa/drivers/dri/i965/Makefile.am
index fe106b4257..889d4c68a2 100644
--- a/src/mesa/drivers/dri/i965/Makefile.am
+++ b/src/mesa/drivers/dri/i965/Makefile.am
@@ -115,6 +115,9 @@ EXTRA_DIST = \
meson.build
 
 brw_oa_metrics.c: brw_oa.py $(i965_oa_xml_FILES)
-   $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_oa.py 
--code=$(builddir)/brw_oa_metrics.c --header=$(builddir)/brw_oa_metrics.h 
$(i965_oa_xml_FILES)
+   $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_oa.py \
+   --code=$(builddir)/brw_oa_metrics.c \
+   --header=$(builddir)/brw_oa_metrics.h \
+   $(i965_oa_xml_FILES:%=$(srcdir)/%)
 
 brw_oa_metrics.h: brw_oa_metrics.c

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): virgl: Implement seamless cube maps

2018-03-20 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 1117edc60dd2746819d1d4e3bfd809ec3a4f5902
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1117edc60dd2746819d1d4e3bfd809ec3a4f5902

Author: Stéphane Marchesin 
Date:   Fri Mar 16 19:15:02 2018 -0700

virgl: Implement seamless cube maps

This was previously ignored.

Along with the virglrenderer patch, this fixes ~100 dEQP tests:
dEQP-GLES3.functional.texture.filtering.cube.*

Signed-off-by: Stéphane Marchesin 
Signed-off-by: Dave Airlie 

---

 src/gallium/drivers/virgl/virgl_encode.c   | 3 ++-
 src/gallium/drivers/virgl/virgl_protocol.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/virgl/virgl_encode.c 
b/src/gallium/drivers/virgl/virgl_encode.c
index 80e60bc284..a6f6d13f85 100644
--- a/src/gallium/drivers/virgl/virgl_encode.c
+++ b/src/gallium/drivers/virgl/virgl_encode.c
@@ -566,7 +566,8 @@ int virgl_encode_sampler_state(struct virgl_context *ctx,
   VIRGL_OBJ_SAMPLE_STATE_S0_MIN_MIP_FILTER(state->min_mip_filter) |
   VIRGL_OBJ_SAMPLE_STATE_S0_MAG_IMG_FILTER(state->mag_img_filter) |
   VIRGL_OBJ_SAMPLE_STATE_S0_COMPARE_MODE(state->compare_mode) |
-  VIRGL_OBJ_SAMPLE_STATE_S0_COMPARE_FUNC(state->compare_func);
+  VIRGL_OBJ_SAMPLE_STATE_S0_COMPARE_FUNC(state->compare_func) |
+  VIRGL_OBJ_SAMPLE_STATE_S0_SEAMLESS_CUBE_MAP(state->seamless_cube_map);
 
virgl_encoder_write_dword(ctx->cbuf, tmp);
virgl_encoder_write_dword(ctx->cbuf, fui(state->lod_bias));
diff --git a/src/gallium/drivers/virgl/virgl_protocol.h 
b/src/gallium/drivers/virgl/virgl_protocol.h
index 7688ac5e8e..5dc2874d1d 100644
--- a/src/gallium/drivers/virgl/virgl_protocol.h
+++ b/src/gallium/drivers/virgl/virgl_protocol.h
@@ -330,6 +330,7 @@ enum virgl_context_cmd {
 #define VIRGL_OBJ_SAMPLE_STATE_S0_MAG_IMG_FILTER(x) (((x) & 0x3) << 13)
 #define VIRGL_OBJ_SAMPLE_STATE_S0_COMPARE_MODE(x) (((x) & 0x1) << 15)
 #define VIRGL_OBJ_SAMPLE_STATE_S0_COMPARE_FUNC(x) (((x) & 0x7) << 16)
+#define VIRGL_OBJ_SAMPLE_STATE_S0_SEAMLESS_CUBE_MAP(x) (((x) & 0x1) << 19)
 
 #define VIRGL_OBJ_SAMPLER_STATE_LOD_BIAS 3
 #define VIRGL_OBJ_SAMPLER_STATE_MIN_LOD 4

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: annotate brw_oa.py's --header and --code as required

2018-03-20 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: c43715d30b754b6e3e4ea0bfc0f7cee9e403211a
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c43715d30b754b6e3e4ea0bfc0f7cee9e403211a

Author: Emil Velikov 
Date:   Tue Mar 20 16:23:05 2018 +

i965: annotate brw_oa.py's --header and --code as required

As of earlier commit, the --header was made a hard requirement when
using --code.

Hence - annotate both as required and drop a few no longer needed
checks.

Fixes: 035cc7a12dc0 ("i965: perf: reduce i965 binary size")
Signed-off-by: Emil Velikov 
Reviewed-by: Lionel Landwerlin 

---

 src/mesa/drivers/dri/i965/brw_oa.py | 35 ++-
 1 file changed, 14 insertions(+), 21 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_oa.py 
b/src/mesa/drivers/dri/i965/brw_oa.py
index 63db28bba9..b0b2be2af0 100644
--- a/src/mesa/drivers/dri/i965/brw_oa.py
+++ b/src/mesa/drivers/dri/i965/brw_oa.py
@@ -32,19 +32,16 @@ c_file = None
 _c_indent = 0
 
 def c(*args):
-if c_file:
-code = ' '.join(map(str,args))
-for line in code.splitlines():
-text = ''.rjust(_c_indent) + line
-c_file.write(text.rstrip() + "\n")
+code = ' '.join(map(str,args))
+for line in code.splitlines():
+text = ''.rjust(_c_indent) + line
+c_file.write(text.rstrip() + "\n")
 
 # indented, but no trailing newline...
 def c_line_start(code):
-if c_file:
-c_file.write(''.rjust(_c_indent) + code)
+c_file.write(''.rjust(_c_indent) + code)
 def c_raw(code):
-if c_file:
-c_file.write(code)
+c_file.write(code)
 
 def c_indent(n):
 global _c_indent
@@ -57,11 +54,10 @@ header_file = None
 _h_indent = 0
 
 def h(*args):
-if header_file:
-code = ' '.join(map(str,args))
-for line in code.splitlines():
-text = ''.rjust(_h_indent) + line
-header_file.write(text.rstrip() + "\n")
+code = ' '.join(map(str,args))
+for line in code.splitlines():
+text = ''.rjust(_h_indent) + line
+header_file.write(text.rstrip() + "\n")
 
 def h_indent(n):
 global _c_indent
@@ -556,17 +552,14 @@ def main():
 global header_file
 
 parser = argparse.ArgumentParser()
-parser.add_argument("--header", help="Header file to write")
-parser.add_argument("--code", help="C file to write")
+parser.add_argument("--header", help="Header file to write", required=True)
+parser.add_argument("--code", help="C file to write", required=True)
 parser.add_argument("xml_files", nargs='+', help="List of xml metrics 
files to process")
 
 args = parser.parse_args()
 
-if args.header:
-header_file = open(args.header, 'w')
-
-if args.code:
-c_file = open(args.code, 'w')
+header_file = open(args.header, 'w')
+c_file = open(args.code, 'w')
 
 gens = []
 for xml_file in args.xml_files:

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: pipecontrol: add LRI write immediate flag

2018-03-20 Thread Lionel Landwerlin
Module: Mesa
Branch: master
Commit: d3e5d3955c1232aa405cf9ac3af65d4d377fd81a
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d3e5d3955c1232aa405cf9ac3af65d4d377fd81a

Author: Lionel Landwerlin 
Date:   Thu Mar 15 12:11:15 2018 +

i965: pipecontrol: add LRI write immediate flag

Signed-off-by: Lionel Landwerlin 
Reviewed-by: Kenneth Graunke 

---

 src/mesa/drivers/dri/i965/brw_pipe_control.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/mesa/drivers/dri/i965/brw_pipe_control.h 
b/src/mesa/drivers/dri/i965/brw_pipe_control.h
index 651cd4d3e7..4c58e16660 100644
--- a/src/mesa/drivers/dri/i965/brw_pipe_control.h
+++ b/src/mesa/drivers/dri/i965/brw_pipe_control.h
@@ -34,6 +34,7 @@ struct brw_bo;
  * additional flushing control.
  */
 #define _3DSTATE_PIPE_CONTROL  (CMD_3D | (3 << 27) | (2 << 24))
+#define PIPE_CONTROL_LRI_WRITE_IMMEDIATE (1 << 23) /* Gen7+ */
 #define PIPE_CONTROL_CS_STALL  (1 << 20)
 #define PIPE_CONTROL_GLOBAL_SNAPSHOT_COUNT_RESET   (1 << 19)
 #define PIPE_CONTROL_TLB_INVALIDATE(1 << 18)

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): intel: genxml: add INSTPM/CS_DEBUG_MODE2 registers

2018-03-20 Thread Lionel Landwerlin
Module: Mesa
Branch: master
Commit: 7f977d51b3cb27723dc0fd6395262568c89a87ab
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f977d51b3cb27723dc0fd6395262568c89a87ab

Author: Lionel Landwerlin 
Date:   Fri Mar  2 16:44:14 2018 +

intel: genxml: add INSTPM/CS_DEBUG_MODE2 registers

Signed-off-by: Lionel Landwerlin 
Reviewed-by: Kenneth Graunke 

---

 src/intel/genxml/gen10.xml | 6 ++
 src/intel/genxml/gen11.xml | 6 ++
 src/intel/genxml/gen6.xml  | 7 +++
 src/intel/genxml/gen7.xml  | 7 +++
 src/intel/genxml/gen75.xml | 7 +++
 src/intel/genxml/gen8.xml  | 7 +++
 src/intel/genxml/gen9.xml  | 6 ++
 7 files changed, 46 insertions(+)

diff --git a/src/intel/genxml/gen10.xml b/src/intel/genxml/gen10.xml
index 2d36957c2a..cc696e800d 100644
--- a/src/intel/genxml/gen10.xml
+++ b/src/intel/genxml/gen10.xml
@@ -3541,4 +3541,10 @@
 
   
 
+  
+
+
+
+  
+
 
diff --git a/src/intel/genxml/gen11.xml b/src/intel/genxml/gen11.xml
index a93b62aa4c..417fac1365 100644
--- a/src/intel/genxml/gen11.xml
+++ b/src/intel/genxml/gen11.xml
@@ -3537,4 +3537,10 @@
 
   
 
+  
+
+
+
+  
+
 
diff --git a/src/intel/genxml/gen6.xml b/src/intel/genxml/gen6.xml
index 088f46f05f..08779733db 100644
--- a/src/intel/genxml/gen6.xml
+++ b/src/intel/genxml/gen6.xml
@@ -1963,4 +1963,11 @@
 
   
 
+  
+
+
+
+
+  
+
 
diff --git a/src/intel/genxml/gen7.xml b/src/intel/genxml/gen7.xml
index 430c2ba73a..87e05c94ef 100644
--- a/src/intel/genxml/gen7.xml
+++ b/src/intel/genxml/gen7.xml
@@ -2551,4 +2551,11 @@
 
   
 
+  
+
+
+
+
+  
+
 
diff --git a/src/intel/genxml/gen75.xml b/src/intel/genxml/gen75.xml
index e18a49ac4d..68aff857f3 100644
--- a/src/intel/genxml/gen75.xml
+++ b/src/intel/genxml/gen75.xml
@@ -3062,4 +3062,11 @@
 
   
 
+  
+
+
+
+
+  
+
 
diff --git a/src/intel/genxml/gen8.xml b/src/intel/genxml/gen8.xml
index c0e837906c..8a4bf34cf7 100644
--- a/src/intel/genxml/gen8.xml
+++ b/src/intel/genxml/gen8.xml
@@ -3294,4 +3294,11 @@
 
   
 
+  
+
+
+
+
+  
+
 
diff --git a/src/intel/genxml/gen9.xml b/src/intel/genxml/gen9.xml
index faee2acca1..cfae4a8b65 100644
--- a/src/intel/genxml/gen9.xml
+++ b/src/intel/genxml/gen9.xml
@@ -3622,4 +3622,10 @@
 
   
 
+  
+
+
+
+  
+
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: fix autotools/android build

2018-03-20 Thread Lionel Landwerlin
Module: Mesa
Branch: master
Commit: 2d2b15fbcab08d7844c15351919cd469cd9e11c4
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d2b15fbcab08d7844c15351919cd469cd9e11c4

Author: Lionel Landwerlin 
Date:   Tue Mar 20 14:59:57 2018 +

i965: fix autotools/android build

Autotools/android builds generate the header & code files in 2 steps,
but the code generation requires the name of the header file to
include it.

This change generates both files in one command.

Fixes: 035cc7a12dc ("i965: perf: reduce i965 binary size")
Signed-off-by: Lionel Landwerlin 
Reviewed-by: Tapani Pälli 
Reviewed-by: Emil Velikov 

---

 src/mesa/drivers/dri/i965/Android.mk  |  9 +++--
 src/mesa/drivers/dri/i965/Makefile.am | 10 +++---
 2 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/Android.mk 
b/src/mesa/drivers/dri/i965/Android.mk
index a3d010a589..8c4a613bcf 100644
--- a/src/mesa/drivers/dri/i965/Android.mk
+++ b/src/mesa/drivers/dri/i965/Android.mk
@@ -312,15 +312,12 @@ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, 
\
 i965_oa_xml_FILES := $(addprefix $(LOCAL_PATH)/, \
$(i965_oa_xml_FILES))
 
-$(intermediates)/brw_oa_metrics.h: $(LOCAL_PATH)/brw_oa.py $(i965_oa_xml_FILES)
-   @echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
-   @mkdir -p $(dir $@)
-   $(hide) $(MESA_PYTHON2) $< --header=$@ $(i965_oa_xml_FILES)
-
 $(intermediates)/brw_oa_metrics.c: $(LOCAL_PATH)/brw_oa.py $(i965_oa_xml_FILES)
@echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
@mkdir -p $(dir $@)
-   $(hide) $(MESA_PYTHON2) $< --code=$@ $(i965_oa_xml_FILES)
+   $(hide) $(MESA_PYTHON2) $< --code=$@ $(i965_oa_xml_FILES) --header=$@ 
$(i965_oa_xml_FILES)
+
+$(intermediates)/brw_oa_metrics.h: $(intermediates)/brw_oa_metrics.c
 
 include $(MESA_COMMON_MK)
 include $(BUILD_SHARED_LIBRARY)
diff --git a/src/mesa/drivers/dri/i965/Makefile.am 
b/src/mesa/drivers/dri/i965/Makefile.am
index 8c8ecc6d76..fe106b4257 100644
--- a/src/mesa/drivers/dri/i965/Makefile.am
+++ b/src/mesa/drivers/dri/i965/Makefile.am
@@ -114,11 +114,7 @@ EXTRA_DIST = \
$(i965_oa_xml_FILES) \
meson.build
 
-# Note: we avoid using a multi target rule here and outputting both the
-# .c and .h files in one go so we don't hit problems with parallel
-# make and multiple invocations of the same script trying to write
-# to the same files.
-brw_oa_metrics.h: brw_oa.py $(i965_oa_xml_FILES)
-   $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_oa.py 
--header=$(builddir)/brw_oa_metrics.h $(i965_oa_xml_FILES)
 brw_oa_metrics.c: brw_oa.py $(i965_oa_xml_FILES)
-   $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_oa.py 
--code=$(builddir)/brw_oa_metrics.c $(i965_oa_xml_FILES)
+   $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/brw_oa.py 
--code=$(builddir)/brw_oa_metrics.c --header=$(builddir)/brw_oa_metrics.h 
$(i965_oa_xml_FILES)
+
+brw_oa_metrics.h: brw_oa_metrics.c

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): dri3: Fix typo in version check

2018-03-20 Thread Daniel Stone
Module: Mesa
Branch: master
Commit: 9f3509665d880457487dff82a96132d2eb27a0b4
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f3509665d880457487dff82a96132d2eb27a0b4

Author: Daniel Stone 
Date:   Tue Mar 20 16:05:13 2018 +

dri3: Fix typo in version check

The have-new-DRI3 codepaths would never actually properly trigger, since
there was a typo in configure.ac which broke the version check. This
went unnoticed but for an error in config.log if you looked closely
enough.

Signed-off-by: Daniel Stone 
Reported-by: Lukas F. Hartmann 
Reviewed-by: Dylan Baker 
Fixes: 7aeef2d4efdc ("dri3: allow building against older xcb (v3)")
Cc: Dave Airlie 

---

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index d1c8bb82da..5074275211 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1852,7 +1852,7 @@ if test x"$enable_dri3" = xyes; then
 
 dri3_modules="x11-xcb xcb >= $XCB_REQUIRED xcb-dri3 xcb-xfixes xcb-present 
xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
 PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules])
-dri3_modifier_modules="xcb-dri3 >= $XCBDRI3_MODIFIERS_REQUIRED xcb-present 
>= $XCBPRESENT_MODIFIERS_REQUIRES"
+dri3_modifier_modules="xcb-dri3 >= $XCBDRI3_MODIFIERS_REQUIRED xcb-present 
>= $XCBPRESENT_MODIFIERS_REQUIRED"
 PKG_CHECK_MODULES([XCB_DRI3_MODIFIERS], [$dri3_modifier_modules], 
[have_dri3_modifiers=yes], [have_dri3_modifiers=no])
 
 if test "x$have_dri3_modifiers" == xyes; then

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): meson: Don't build svga by default on ARM/AArch64

2018-03-20 Thread Daniel Stone
Module: Mesa
Branch: master
Commit: bc5e59119ef6e7fdb5b54ce0a690a1ad43e6401c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bc5e59119ef6e7fdb5b54ce0a690a1ad43e6401c

Author: Daniel Stone 
Date:   Tue Feb 27 18:00:23 2018 +

meson: Don't build svga by default on ARM/AArch64

VMware has no (published) support for Arm-architecture guests.

Signed-off-by: Daniel Stone 
Reviewed-by: Eric Engestrom 
Reported-by: Dylan Baker 

---

 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 88e90fe811..24cad58c61 100644
--- a/meson.build
+++ b/meson.build
@@ -151,7 +151,7 @@ if _drivers == 'auto'
 if ['x86', 'x86_64'].contains(host_machine.cpu_family())
   _drivers = 'r300,r600,radeonsi,nouveau,virgl,svga,swrast'
 elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
-  _drivers = 
'pl111,vc4,vc5,freedreno,etnaviv,imx,nouveau,tegra,virgl,svga,swrast'
+  _drivers = 
'pl111,vc4,vc5,freedreno,etnaviv,imx,nouveau,tegra,virgl,swrast'
 else
   error('Unknown architecture. Please pass -Dgallium-drivers to set driver 
options. Patches gladly accepted to fix this.')
 endif

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): meson: Add default DRI drivers for ARM/AArch64

2018-03-20 Thread Daniel Stone
Module: Mesa
Branch: master
Commit: d7603cb518cf1e0bf2c07d6ce4b139bf075b3980
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7603cb518cf1e0bf2c07d6ce4b139bf075b3980

Author: Daniel Stone 
Date:   Tue Feb 27 10:00:24 2018 +

meson: Add default DRI drivers for ARM/AArch64

On all Arm architectures (ARMv7 and below as 'arm', ARMv8 and above as
'aarch64'), only build swrast for DRI drivers. The only classic drivers
which could be used are r200 and NV20 cards, which seems unlikely enough
that it shouldn't be the default.

Signed-off-by: Daniel Stone 
Reported-by: Javier Jardón 
Reviewed-by: Dylan Baker 
Reviewed-by: Eric Engestrom 

---

 meson.build | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meson.build b/meson.build
index a59736f50a..88e90fe811 100644
--- a/meson.build
+++ b/meson.build
@@ -104,6 +104,8 @@ if _drivers == 'auto'
 # TODO: PPC, Sparc
 if ['x86', 'x86_64'].contains(host_machine.cpu_family())
   _drivers = 'i915,i965,r100,r200,nouveau'
+elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
+  _drivers = ''
 else
   error('Unknown architecture. Please pass -Ddri-drivers to set driver 
options. Patches gladly accepted to fix this.')
 endif

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/mesa: add compiler/nir/ prefix for nir includes

2018-03-20 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 28780c5028a60234e11e084777553ad70591f87d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=28780c5028a60234e11e084777553ad70591f87d

Author: Emil Velikov 
Date:   Tue Mar 20 11:39:57 2018 +

st/mesa: add compiler/nir/ prefix for nir includes

Stay consistent with the rest of the codebase, effectively fixing the
autotools build.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105621
Fixes: ffa4bbe4665 ("st/nir/radeonsi: move nir_lower_uniforms_to_ubo()
to the state tracker")
Cc: Timothy Arceri 
Signed-off-by: Emil Velikov 
Reviewed-by: Brian Paul 

---

 src/mesa/state_tracker/st_nir_lower_uniforms_to_ubo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_nir_lower_uniforms_to_ubo.c 
b/src/mesa/state_tracker/st_nir_lower_uniforms_to_ubo.c
index e2a477ecc7..b2f8f833bb 100644
--- a/src/mesa/state_tracker/st_nir_lower_uniforms_to_ubo.c
+++ b/src/mesa/state_tracker/st_nir_lower_uniforms_to_ubo.c
@@ -29,8 +29,8 @@
  * point by 1.
  */
 
-#include "nir.h"
-#include "nir_builder.h"
+#include "compiler/nir/nir.h"
+#include "compiler/nir/nir_builder.h"
 #include "st_nir.h"
 
 #include "program/prog_parameter.h"

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): anv: off-by-one in GetDescriptorSetLayoutSupport

2018-03-20 Thread Scott D Phillips
Module: Mesa
Branch: master
Commit: d849d36c6cc99cb7a7ad4b285e3e896d593da07b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d849d36c6cc99cb7a7ad4b285e3e896d593da07b

Author: Scott D Phillips 
Date:   Mon Mar 19 15:39:25 2018 -0700

anv: off-by-one in GetDescriptorSetLayoutSupport

Loop was accessing one more than bindingCount elements from
pBindings, accessing uninitialized memory.

Fixes: ddc4069122 ("anv: Implement VK_KHR_maintenance3")
Reviewed-by: Nanley Chery 
Reviewed-by: Lionel Landwerlin 

---

 src/intel/vulkan/anv_descriptor_set.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_descriptor_set.c 
b/src/intel/vulkan/anv_descriptor_set.c
index 2a3c496a9f..67511e4b28 100644
--- a/src/intel/vulkan/anv_descriptor_set.c
+++ b/src/intel/vulkan/anv_descriptor_set.c
@@ -42,7 +42,7 @@ void anv_GetDescriptorSetLayoutSupport(
 {
uint32_t surface_count[MESA_SHADER_STAGES] = { 0, };
 
-   for (uint32_t b = 0; b <= pCreateInfo->bindingCount; b++) {
+   for (uint32_t b = 0; b < pCreateInfo->bindingCount; b++) {
   const VkDescriptorSetLayoutBinding *binding = >pBindings[b];
 
   switch (binding->descriptorType) {

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: perf: reduce i965 binary size

2018-03-20 Thread Lionel Landwerlin
Module: Mesa
Branch: master
Commit: 035cc7a12dc03ef8b8184f75b880ae41e452b215
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=035cc7a12dc03ef8b8184f75b880ae41e452b215

Author: Lionel Landwerlin 
Date:   Tue Mar 13 11:21:17 2018 +

i965: perf: reduce i965 binary size

Performance metric numbers are calculated the following way :

   - out of the 256 bytes long OA reports, we accumulate the deltas
 into an array of uint64_t

   - the equations' generated code reads the accumulated uint64_t
 deltas and normalizes them for a particular platform

Our hardware is such that a number of counters in the OA reports
always return the same values (i.e. they're not programmable), and
they return the same values even across generations, and as a result a
number of equations are identical in different metric sets across
different generations.

Up to now we've kept the generated code of the equations separated in
different files (per generation/GT), and didn't apply any
factorization of the common equations. We could have make some
improvement by reusing equations within a given metrics file, but we
can go even further and reuse across generations (i.e. all files).

This change changes the code generation to emit a single file in which
we reuse equations emitted code based on the hash of equations'
strings.

Here are the savings in a meson build :

Before(.old)/after :
   $ du -h ./build/src/mesa/drivers/dri/libmesa_dri_drivers.so 
./build/src/mesa/drivers/dri/libmesa_dri_drivers.so.old
   43M  ./build/src/mesa/drivers/dri/libmesa_dri_drivers.so
   47M  ./build/src/mesa/drivers/dri/libmesa_dri_drivers.so.old

   $ size build/src/mesa/drivers/dri/libmesa_dri_drivers.so 
build/src/mesa/drivers/dri/libmesa_dri_drivers.so.old
   text   data  bss  dechex filename
   13054002 409424   671856 14135282 d7aff2 
build/src/mesa/drivers/dri/libmesa_dri_drivers.so
   14550386 409552   671856 15631794 ee85b2 
build/src/mesa/drivers/dri/libmesa_dri_drivers.so.old

As a side comment here is the size of the drivers if we remove all of
the metrics from the build :

   $ du -sh build/src/mesa/drivers/dri/libmesa_dri_drivers.so
   40M  build/src/mesa/drivers/dri/libmesa_dri_drivers.so

v2: Fix an issue with hashing of counter equations (Lionel)
Build system rework (Emil)

Signed-off-by: Lionel Landwerlin 
Reviewed-by: Emil Velikov  (build system part)
Reviewed-by: Kenneth Graunke 

---

 src/mesa/drivers/dri/i965/Android.mk  |  11 +-
 src/mesa/drivers/dri/i965/Makefile.am |  21 +-
 src/mesa/drivers/dri/i965/Makefile.sources|  40 +-
 src/mesa/drivers/dri/i965/brw_oa.py   | 433 ++
 src/mesa/drivers/dri/i965/brw_performance_query.c |  13 +-
 src/mesa/drivers/dri/i965/meson.build |  37 +-
 6 files changed, 334 insertions(+), 221 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/Android.mk 
b/src/mesa/drivers/dri/i965/Android.mk
index 964313e6c5..a3d010a589 100644
--- a/src/mesa/drivers/dri/i965/Android.mk
+++ b/src/mesa/drivers/dri/i965/Android.mk
@@ -309,15 +309,18 @@ intermediates := $(call local-generated-sources-dir)
 LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \
$(i965_oa_GENERATED_FILES))
 
-$(intermediates)/brw_oa_%.h: $(LOCAL_PATH)/brw_oa_%.xml $(LOCAL_PATH)/brw_oa.py
+i965_oa_xml_FILES := $(addprefix $(LOCAL_PATH)/, \
+   $(i965_oa_xml_FILES))
+
+$(intermediates)/brw_oa_metrics.h: $(LOCAL_PATH)/brw_oa.py $(i965_oa_xml_FILES)
@echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
@mkdir -p $(dir $@)
-   $(hide) $(MESA_PYTHON2) $(word 2, $^) --header=$@ --chipset=$(basename 
$*) $<
+   $(hide) $(MESA_PYTHON2) $< --header=$@ $(i965_oa_xml_FILES)
 
-$(intermediates)/brw_oa_%.c: $(LOCAL_PATH)/brw_oa_%.xml $(LOCAL_PATH)/brw_oa.py
+$(intermediates)/brw_oa_metrics.c: $(LOCAL_PATH)/brw_oa.py $(i965_oa_xml_FILES)
@echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
@mkdir -p $(dir $@)
-   $(hide) $(MESA_PYTHON2) $(word 2, $^) --code=$@ --chipset=$(basename 
$*) $<
+   $(hide) $(MESA_PYTHON2) $< --code=$@ $(i965_oa_xml_FILES)
 
 include $(MESA_COMMON_MK)
 include $(BUILD_SHARED_LIBRARY)
diff --git a/src/mesa/drivers/dri/i965/Makefile.am 
b/src/mesa/drivers/dri/i965/Makefile.am
index 824882389e..8c8ecc6d76 100644
--- a/src/mesa/drivers/dri/i965/Makefile.am
+++ b/src/mesa/drivers/dri/i965/Makefile.am
@@ -110,26 +110,15 @@ BUILT_SOURCES = $(i965_oa_GENERATED_FILES)
 CLEANFILES = $(BUILT_SOURCES)
 
 EXTRA_DIST = \
-   brw_oa_hsw.xml \
-   brw_oa_bdw.xml \
-   brw_oa_chv.xml \
-   brw_oa_sklgt2.xml \
-   brw_oa_sklgt3.xml \
-   brw_oa_sklgt4.xml \
-   brw_oa_bxt.xml \
-   brw_oa_kblgt2.xml \
-   brw_oa_kblgt3.xml \
-   brw_oa_glk.xml \
-   

Mesa (master): i965: perf: fix a counter return type on hsw

2018-03-20 Thread Lionel Landwerlin
Module: Mesa
Branch: master
Commit: e9a9e859486104ff9326cbc424480e53dc4e81ba
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9a9e859486104ff9326cbc424480e53dc4e81ba

Author: Lionel Landwerlin 
Date:   Tue Mar 13 11:45:12 2018 +

i965: perf: fix a counter return type on hsw

The equation code computes a float (percentage) yet the return type
was an uint64_t.

Signed-off-by: Lionel Landwerlin 
Reviewed-by: Kenneth Graunke 

---

 src/mesa/drivers/dri/i965/brw_oa_hsw.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_oa_hsw.xml 
b/src/mesa/drivers/dri/i965/brw_oa_hsw.xml
index ebc2bd7914..861cc1212a 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_hsw.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_hsw.xml
@@ -1669,7 +1669,7 @@
  />
 https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): mesa: fix leaking ParameterValueOffset

2018-03-20 Thread Tapani Pälli
Module: Mesa
Branch: master
Commit: 604cac9f739264377acb22a657bf745762a94656
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=604cac9f739264377acb22a657bf745762a94656

Author: Tapani Pälli 
Date:   Tue Mar 20 08:55:28 2018 +0200

mesa: fix leaking ParameterValueOffset

==15115== 48 bytes in 1 blocks are definitely lost in loss record 16 of 66
==15115==at 0x4C2EC15: realloc (vg_replace_malloc.c:785)
==15115==by 0x8602C3E: _mesa_reserve_parameter_storage 
(prog_parameter.c:212)
==15115==by 0x8602D1E: _mesa_add_parameter (prog_parameter.c:252)
==15115==by 0x86032C4: _mesa_add_sized_state_reference 
(prog_parameter.c:384)
==15115==by 0x8603324: _mesa_add_state_reference (prog_parameter.c:409)

Fixes: edded12376 "mesa: rework ParameterList to allow packing"
Signed-off-by: Tapani Pälli 
Reviewed-by: Timothy Arceri 

---

 src/mesa/program/prog_parameter.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/mesa/program/prog_parameter.c 
b/src/mesa/program/prog_parameter.c
index 88821cfba1..2bc1b6db6e 100644
--- a/src/mesa/program/prog_parameter.c
+++ b/src/mesa/program/prog_parameter.c
@@ -180,6 +180,7 @@ _mesa_free_parameter_list(struct gl_program_parameter_list 
*paramList)
   free((void *)paramList->Parameters[i].Name);
}
free(paramList->Parameters);
+   free(paramList->ParameterValueOffset);
_mesa_align_free(paramList->ParameterValues);
free(paramList);
 }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): dri3: Don't fail on version mismatch

2018-03-20 Thread Daniel Stone
Module: Mesa
Branch: master
Commit: 478fc2d2a1a392108f48a3ed9aa21b10be72b4a2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=478fc2d2a1a392108f48a3ed9aa21b10be72b4a2

Author: Daniel Stone 
Date:   Mon Mar 19 15:03:22 2018 +

dri3: Don't fail on version mismatch

The previous commit to make DRI3 modifier support optional, breaks with
an updated server and old client.

Make sure we never set multibuffers_available unless we also support it
locally. Make sure we don't call stubs of new-DRI3 functions (or empty
branches) which will never succeed.

Signed-off-by: Daniel Stone 
Reviewed-by: Dave Airlie 
Fixes: 7aeef2d4efdc ("dri3: allow building against older xcb (v3)")

---

 src/egl/drivers/dri2/egl_dri2.c  |  2 +-
 src/egl/drivers/dri2/platform_x11_dri3.c | 10 ++
 src/glx/dri3_glx.c   |  8 ++--
 src/loader/loader_dri3_helper.c  |  5 +++--
 src/vulkan/wsi/wsi_common_x11.c  |  4 
 5 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 535806e4bf..45d0c7275c 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -882,7 +882,7 @@ dri2_setup_extensions(_EGLDisplay *disp)
if (!dri2_bind_extensions(dri2_dpy, mandatory_core_extensions, extensions, 
false))
   return EGL_FALSE;
 
-#ifdef HAVE_DRI3
+#ifdef HAVE_DRI3_MODIFIERS
dri2_dpy->multibuffers_available =
   (dri2_dpy->dri3_major_version > 1 || (dri2_dpy->dri3_major_version == 1 
&&
 dri2_dpy->dri3_minor_version >= 
2)) &&
diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c 
b/src/egl/drivers/dri2/platform_x11_dri3.c
index de60e952da..5e531e21cb 100644
--- a/src/egl/drivers/dri2/platform_x11_dri3.c
+++ b/src/egl/drivers/dri2/platform_x11_dri3.c
@@ -322,12 +322,12 @@ dri3_create_image_khr_pixmap(_EGLDisplay *disp, 
_EGLContext *ctx,
return _img->base;
 }
 
+#ifdef HAVE_DRI3_MODIFIERS
 static _EGLImage *
 dri3_create_image_khr_pixmap_from_buffers(_EGLDisplay *disp, _EGLContext *ctx,
   EGLClientBuffer buffer,
   const EGLint *attr_list)
 {
-#ifdef HAVE_DRI3_MODIFIERS
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri2_egl_image *dri2_img;
xcb_dri3_buffers_from_pixmap_cookie_t bp_cookie;
@@ -377,23 +377,25 @@ dri3_create_image_khr_pixmap_from_buffers(_EGLDisplay 
*disp, _EGLContext *ctx,
}
 
return _img->base;
-#else
-   return NULL;
-#endif
 }
+#endif
 
 static _EGLImage *
 dri3_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
   _EGLContext *ctx, EGLenum target,
   EGLClientBuffer buffer, const EGLint *attr_list)
 {
+#ifdef HAVE_DRI3_MODIFIERS
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+#endif
 
switch (target) {
case EGL_NATIVE_PIXMAP_KHR:
+#ifdef HAVE_DRI3_MODIFIERS
   if (dri2_dpy->multibuffers_available)
  return dri3_create_image_khr_pixmap_from_buffers(disp, ctx, buffer,
   attr_list);
+#endif
   return dri3_create_image_khr_pixmap(disp, ctx, buffer, attr_list);
default:
   return dri2_create_image_khr(drv, disp, ctx, target, buffer, attr_list);
diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
index aec803adfd..c48a8ba532 100644
--- a/src/glx/dri3_glx.c
+++ b/src/glx/dri3_glx.c
@@ -357,10 +357,12 @@ dri3_create_drawable(struct glx_screen *base, XID 
xDrawable,
 {
struct dri3_drawable *pdraw;
struct dri3_screen *psc = (struct dri3_screen *) base;
-   const struct dri3_display *const pdp = (struct dri3_display *)
-  base->display->dri3Display;
__GLXDRIconfigPrivate *config = (__GLXDRIconfigPrivate *) config_base;
bool has_multibuffer = false;
+#ifdef HAVE_DRI3_MODIFIERS
+   const struct dri3_display *const pdp = (struct dri3_display *)
+  base->display->dri3Display;
+#endif
 
pdraw = calloc(1, sizeof(*pdraw));
if (!pdraw)
@@ -371,11 +373,13 @@ dri3_create_drawable(struct glx_screen *base, XID 
xDrawable,
pdraw->base.drawable = drawable;
pdraw->base.psc = >base;
 
+#ifdef HAVE_DRI3_MODIFIERS
if ((psc->image && psc->image->base.version >= 15) &&
(pdp->dri3Major > 1 || (pdp->dri3Major == 1 && pdp->dri3Minor >= 2)) &&
(pdp->presentMajor > 1 ||
 (pdp->presentMajor == 1 && pdp->presentMinor >= 2)))
   has_multibuffer = true;
+#endif
 
(void) __glXInitialize(psc->base.dpy);
 
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
index c1d94c3c21..fe17df1473 100644
--- a/src/loader/loader_dri3_helper.c
+++ b/src/loader/loader_dri3_helper.c
@@ -1274,9 +1274,9 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable 
*draw, unsigned int format,
   buffer->modifier =