Mesa (master): mesa/formats: add more MESA_FORMAT_LAYOUTs

2015-08-19 Thread Nanley Chery
Module: Mesa
Branch: master
Commit: 0872b042b13388bc870a3acf167a6ce692b734dd
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0872b042b13388bc870a3acf167a6ce692b734dd

Author: Nanley Chery nanley.g.ch...@intel.com
Date:   Fri Aug  7 14:36:23 2015 -0700

mesa/formats: add more MESA_FORMAT_LAYOUTs

Add the classes of compressed formats as layouts. This allows the detection
of compressed formats belonging to a certain category of compressed formats.

v2. simplify layout name construction (Ilia).

Reviewed-by: Chad Versace chad.vers...@intel.com
Signed-off-by: Nanley Chery nanley.g.ch...@intel.com

---

 src/mesa/main/format_info.py |   10 +-
 src/mesa/main/formats.c  |6 ++
 src/mesa/main/formats.h  |6 ++
 src/mesa/main/texcompress.c  |   30 ++
 4 files changed, 19 insertions(+), 33 deletions(-)

diff --git a/src/mesa/main/format_info.py b/src/mesa/main/format_info.py
index 3bae57e..c249e73 100644
--- a/src/mesa/main/format_info.py
+++ b/src/mesa/main/format_info.py
@@ -98,14 +98,6 @@ def get_gl_data_type(fmat):
else:
   assert False
 
-def get_mesa_layout(fmat):
-   if fmat.layout == 'array':
-  return 'MESA_FORMAT_LAYOUT_ARRAY'
-   elif fmat.layout == 'packed':
-  return 'MESA_FORMAT_LAYOUT_PACKED'
-   else:
-  return 'MESA_FORMAT_LAYOUT_OTHER'
-
 def get_channel_bits(fmat, chan_name):
if fmat.is_compressed():
   # These values are pretty-much bogus, but OpenGL requires that we
@@ -179,7 +171,7 @@ for fmat in formats:
print '   {'
print '  {0},'.format(fmat.name)
print '  {0},'.format(fmat.name)
-   print '  {0},'.format(get_mesa_layout(fmat))
+   print '  {0},'.format('MESA_FORMAT_LAYOUT_' + fmat.layout.upper())
print '  {0},'.format(get_gl_base_format(fmat))
print '  {0},'.format(get_gl_data_type(fmat))
 
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index d7b2bae..8c7e6ad 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -188,6 +188,12 @@ _mesa_get_format_max_bits(mesa_format format)
  * The return value will be one of:
  *MESA_FORMAT_LAYOUT_ARRAY
  *MESA_FORMAT_LAYOUT_PACKED
+ *MESA_FORMAT_LAYOUT_S3TC
+ *MESA_FORMAT_LAYOUT_RGTC
+ *MESA_FORMAT_LAYOUT_FXT1
+ *MESA_FORMAT_LAYOUT_ETC1
+ *MESA_FORMAT_LAYOUT_ETC2
+ *MESA_FORMAT_LAYOUT_BPTC
  *MESA_FORMAT_LAYOUT_OTHER
  */
 extern enum mesa_format_layout
diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h
index d938e6a..d267d3b 100644
--- a/src/mesa/main/formats.h
+++ b/src/mesa/main/formats.h
@@ -64,6 +64,12 @@ extern C {
 enum mesa_format_layout {
MESA_FORMAT_LAYOUT_ARRAY,
MESA_FORMAT_LAYOUT_PACKED,
+   MESA_FORMAT_LAYOUT_S3TC,
+   MESA_FORMAT_LAYOUT_RGTC,
+   MESA_FORMAT_LAYOUT_FXT1,
+   MESA_FORMAT_LAYOUT_ETC1,
+   MESA_FORMAT_LAYOUT_ETC2,
+   MESA_FORMAT_LAYOUT_BPTC,
MESA_FORMAT_LAYOUT_OTHER,
 };
 
diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c
index 0fd1a36..edfb036 100644
--- a/src/mesa/main/texcompress.c
+++ b/src/mesa/main/texcompress.c
@@ -586,34 +586,16 @@ _mesa_compressed_image_address(GLint col, GLint row, 
GLint img,
 compressed_fetch_func
 _mesa_get_compressed_fetch_func(mesa_format format)
 {
-   switch (format) {
-   case MESA_FORMAT_RGB_DXT1:
-   case MESA_FORMAT_RGBA_DXT1:
-   case MESA_FORMAT_RGBA_DXT3:
-   case MESA_FORMAT_RGBA_DXT5:
-   case MESA_FORMAT_SRGB_DXT1:
-   case MESA_FORMAT_SRGBA_DXT1:
-   case MESA_FORMAT_SRGBA_DXT3:
-   case MESA_FORMAT_SRGBA_DXT5:
+   switch (_mesa_get_format_layout(format)) {
+   case MESA_FORMAT_LAYOUT_S3TC:
   return _mesa_get_dxt_fetch_func(format);
-   case MESA_FORMAT_RGB_FXT1:
-   case MESA_FORMAT_RGBA_FXT1:
+   case MESA_FORMAT_LAYOUT_FXT1:
   return _mesa_get_fxt_fetch_func(format);
-   case MESA_FORMAT_R_RGTC1_UNORM:
-   case MESA_FORMAT_L_LATC1_UNORM:
-   case MESA_FORMAT_R_RGTC1_SNORM:
-   case MESA_FORMAT_L_LATC1_SNORM:
-   case MESA_FORMAT_RG_RGTC2_UNORM:
-   case MESA_FORMAT_LA_LATC2_UNORM:
-   case MESA_FORMAT_RG_RGTC2_SNORM:
-   case MESA_FORMAT_LA_LATC2_SNORM:
+   case MESA_FORMAT_LAYOUT_RGTC:
   return _mesa_get_compressed_rgtc_func(format);
-   case MESA_FORMAT_ETC1_RGB8:
+   case MESA_FORMAT_LAYOUT_ETC1:
   return _mesa_get_etc_fetch_func(format);
-   case MESA_FORMAT_BPTC_RGBA_UNORM:
-   case MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM:
-   case MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT:
-   case MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT:
+   case MESA_FORMAT_LAYOUT_BPTC:
   return _mesa_get_bptc_fetch_func(format);
default:
   return NULL;

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


Mesa (master): mesa/formats: refactor by collapsing cases in switch statement by type

2015-08-19 Thread Nanley Chery
Module: Mesa
Branch: master
Commit: ffe6c6ad5f719dedd1b6b95e8590e3f20b23d340
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffe6c6ad5f719dedd1b6b95e8590e3f20b23d340

Author: Nanley Chery nanley.g.ch...@intel.com
Date:   Tue Aug 11 11:56:35 2015 -0700

mesa/formats: refactor by collapsing cases in switch statement by type

Combine the adjacent cases which have the same GL type in the switch statemnt.

Reviewed-by: Chad Versace chad.vers...@intel.com
Signed-off-by: Nanley Chery nanley.g.ch...@intel.com

---

 src/mesa/main/formats.c |  152 ++-
 1 file changed, 17 insertions(+), 135 deletions(-)

diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 8c7e6ad..a55341d 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -1013,13 +1013,10 @@ _mesa_format_to_type_and_comps(mesa_format format,
case MESA_FORMAT_R8G8B8X8_UNORM:
case MESA_FORMAT_B8G8R8X8_UNORM:
case MESA_FORMAT_X8R8G8B8_UNORM:
-  *datatype = GL_UNSIGNED_BYTE;
-  *comps = 4;
-  return;
case MESA_FORMAT_BGR_UNORM8:
case MESA_FORMAT_RGB_UNORM8:
   *datatype = GL_UNSIGNED_BYTE;
-  *comps = 3;
+  *comps = _mesa_format_num_components(format);
   return;
case MESA_FORMAT_B5G6R5_UNORM:
case MESA_FORMAT_R5G6B5_UNORM:
@@ -1068,16 +1065,12 @@ _mesa_format_to_type_and_comps(mesa_format format,
case MESA_FORMAT_A16L16_UNORM:
case MESA_FORMAT_R16G16_UNORM:
case MESA_FORMAT_G16R16_UNORM:
-  *datatype = GL_UNSIGNED_SHORT;
-  *comps = 2;
-  return;
-
case MESA_FORMAT_R_UNORM16:
case MESA_FORMAT_A_UNORM16:
case MESA_FORMAT_L_UNORM16:
case MESA_FORMAT_I_UNORM16:
   *datatype = GL_UNSIGNED_SHORT;
-  *comps = 1;
+  *comps = _mesa_format_num_components(format);
   return;
 
case MESA_FORMAT_R3G3B2_UNORM:
@@ -1085,10 +1078,6 @@ _mesa_format_to_type_and_comps(mesa_format format,
   *comps = 3;
   return;
case MESA_FORMAT_A4B4G4R4_UNORM:
-  *datatype = GL_UNSIGNED_SHORT_4_4_4_4;
-  *comps = 4;
-  return;
-
case MESA_FORMAT_R4G4B4A4_UNORM:
   *datatype = GL_UNSIGNED_SHORT_4_4_4_4;
   *comps = 4;
@@ -1099,9 +1088,6 @@ _mesa_format_to_type_and_comps(mesa_format format,
   return;
case MESA_FORMAT_A2B10G10R10_UNORM:
case MESA_FORMAT_A2B10G10R10_UINT:
-  *datatype = GL_UNSIGNED_INT_10_10_10_2;
-  *comps = 4;
-  return;
case MESA_FORMAT_A2R10G10B10_UNORM:
case MESA_FORMAT_A2R10G10B10_UINT:
   *datatype = GL_UNSIGNED_INT_10_10_10_2;
@@ -1144,15 +1130,7 @@ _mesa_format_to_type_and_comps(mesa_format format,
   return;
 
case MESA_FORMAT_Z24_UNORM_X8_UINT:
-  *datatype = GL_UNSIGNED_INT;
-  *comps = 1;
-  return;
-
case MESA_FORMAT_X8_UINT_Z24_UNORM:
-  *datatype = GL_UNSIGNED_INT;
-  *comps = 1;
-  return;
-
case MESA_FORMAT_Z_UNORM32:
   *datatype = GL_UNSIGNED_INT;
   *comps = 1;
@@ -1172,20 +1150,14 @@ _mesa_format_to_type_and_comps(mesa_format format,
case MESA_FORMAT_A_SNORM8:
case MESA_FORMAT_L_SNORM8:
case MESA_FORMAT_I_SNORM8:
-  *datatype = GL_BYTE;
-  *comps = 1;
-  return;
case MESA_FORMAT_R8G8_SNORM:
case MESA_FORMAT_L8A8_SNORM:
case MESA_FORMAT_A8L8_SNORM:
-  *datatype = GL_BYTE;
-  *comps = 2;
-  return;
case MESA_FORMAT_A8B8G8R8_SNORM:
case MESA_FORMAT_R8G8B8A8_SNORM:
case MESA_FORMAT_X8B8G8R8_SNORM:
   *datatype = GL_BYTE;
-  *comps = 4;
+  *comps = _mesa_format_num_components(format);
   return;
 
case MESA_FORMAT_RGBA_UNORM16:
@@ -1197,42 +1169,24 @@ _mesa_format_to_type_and_comps(mesa_format format,
case MESA_FORMAT_A_SNORM16:
case MESA_FORMAT_L_SNORM16:
case MESA_FORMAT_I_SNORM16:
-  *datatype = GL_SHORT;
-  *comps = 1;
-  return;
case MESA_FORMAT_R16G16_SNORM:
case MESA_FORMAT_LA_SNORM16:
-  *datatype = GL_SHORT;
-  *comps = 2;
-  return;
case MESA_FORMAT_RGB_SNORM16:
-  *datatype = GL_SHORT;
-  *comps = 3;
-  return;
case MESA_FORMAT_RGBA_SNORM16:
   *datatype = GL_SHORT;
-  *comps = 4;
+  *comps = _mesa_format_num_components(format);
   return;
 
case MESA_FORMAT_BGR_SRGB8:
-  *datatype = GL_UNSIGNED_BYTE;
-  *comps = 3;
-  return;
case MESA_FORMAT_A8B8G8R8_SRGB:
case MESA_FORMAT_B8G8R8A8_SRGB:
case MESA_FORMAT_A8R8G8B8_SRGB:
case MESA_FORMAT_R8G8B8A8_SRGB:
-  *datatype = GL_UNSIGNED_BYTE;
-  *comps = 4;
-  return;
case MESA_FORMAT_L_SRGB8:
-  *datatype = GL_UNSIGNED_BYTE;
-  *comps = 1;
-  return;
case MESA_FORMAT_L8A8_SRGB:
case MESA_FORMAT_A8L8_SRGB:
   *datatype = GL_UNSIGNED_BYTE;
-  *comps = 2;
+  *comps = _mesa_format_num_components(format);
   return;
 
case MESA_FORMAT_RGB_FXT1:
@@ -1317,166 +1271,94 @@ _mesa_format_to_type_and_comps(mesa_format format,
case MESA_FORMAT_A_UINT8:
case 

Mesa (master): mesa/main: Add GL_IMAGE_FORMAT_COMPATIBILITY_TYPE to glGetTexParameterfv

2015-08-19 Thread Tapani Pälli
Module: Mesa
Branch: master
Commit: 3df7856b4625f21ebf5465bad2556583b808c8bf
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3df7856b4625f21ebf5465bad2556583b808c8bf

Author: Marta Lofstedt marta.lofst...@intel.com
Date:   Wed Aug 12 11:57:39 2015 +0200

mesa/main: Add GL_IMAGE_FORMAT_COMPATIBILITY_TYPE to glGetTexParameterfv

According to Open GL ES 3.1 specification, section 8.10.2
GL_IMAGE_FORMAT_COMPATIBILITY_TYPE should be supported by
glGetTexParameterfv.

Signed-off-by: Marta Lofstedt marta.lofst...@linux.intel.com
Reviewed-by: Francisco Jerez curroje...@riseup.net

---

 src/mesa/main/texparam.c |6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index 5500eed..16739f1 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -1908,6 +1908,12 @@ get_tex_parameterfv(struct gl_context *ctx,
  *params = (GLfloat) obj-Sampler.sRGBDecode;
  break;
 
+  case GL_IMAGE_FORMAT_COMPATIBILITY_TYPE:
+ if (!ctx-Extensions.ARB_shader_image_load_store)
+goto invalid_pname;
+ *params = (GLfloat) obj-ImageFormatCompatibilityType;
+ break;
+
   default:
  goto invalid_pname;
}

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


Mesa (master): glsl: Fix up GL_ARB_compute_shader for GLSL ES 3.1

2015-08-19 Thread Tapani Pälli
Module: Mesa
Branch: master
Commit: 2438e2fe326d7cb9f9d003f6edf77821e41ef22c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2438e2fe326d7cb9f9d003f6edf77821e41ef22c

Author: Marta Lofstedt marta.lofst...@intel.com
Date:   Mon Aug 10 13:04:42 2015 +0200

glsl: Fix up GL_ARB_compute_shader for GLSL ES 3.1

GL_ARB_compute_shader is limited for GLSL version 430.
This enables for GLSL ES version 310.

V2: Updated error string to also include GLSL 3.10

Signed-off-by: Marta Lofstedt marta.lofst...@linux.intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/glsl/glsl_parser.yy   |5 ++---
 src/glsl/glsl_parser_extras.h |5 +
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 2b0c8bd..7a4b55c 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1519,11 +1519,10 @@ layout_qualifier_id:
 invalid %s of %d specified,
 local_size_qualifiers[i], $3);
YYERROR;
-} else if (!state-is_version(430, 0) 
-   !state-ARB_compute_shader_enable) {
+} else if (!state-has_compute_shader()) {
_mesa_glsl_error( @3, state,
 %s qualifier requires GLSL 4.30 or 
-ARB_compute_shader,
+GLSL ES 3.10 or ARB_compute_shader,
 local_size_qualifiers[i]);
YYERROR;
 } else {
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index eb325f0..57a7555 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -236,6 +236,11 @@ struct _mesa_glsl_parse_state {
   return ARB_shading_language_420pack_enable || is_version(420, 0);
}
 
+   bool has_compute_shader() const
+   {
+  return ARB_compute_shader_enable || is_version(430, 310);
+   }
+
void process_version_directive(YYLTYPE *locp, int version,
   const char *ident);
 

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


Mesa (master): st/mesa: add fake ARB_copy_image support in Gallium

2015-08-19 Thread Ilia Mirkin
Module: Mesa
Branch: master
Commit: f33a7ab150ea01f3550904fe3c56fcad32ce85e0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f33a7ab150ea01f3550904fe3c56fcad32ce85e0

Author: Ilia Mirkin imir...@alum.mit.edu
Date:   Mon Jul 20 15:19:53 2015 -0400

st/mesa: add fake ARB_copy_image support in Gallium

This support should be removed in favor of something that actually works
in all the weird cases. However this is simple and is enough to allow
Bioshock Infinite to render properly on nvc0.

Since the functionality is not implemented correctly, the extension will
not appear in the extension string and mesa will still return
INVALID_OPERATION for any glCopyImageSubData calls. In order to make use
of this functionality, run with
MESA_EXTENSION_OVERRIDE=GL_ARB_copy_image

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
Reviewed-by: Marek Olšák marek.ol...@amd.com

---

 src/mesa/state_tracker/st_cb_texture.c |   27 +++
 1 file changed, 27 insertions(+)

diff --git a/src/mesa/state_tracker/st_cb_texture.c 
b/src/mesa/state_tracker/st_cb_texture.c
index 4f2ef6b..40bc29e 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -1873,6 +1873,31 @@ st_TextureView(struct gl_context *ctx,
return GL_TRUE;
 }
 
+/* HACK: this is only enough for the most basic uses of CopyImage. Must fix
+ * before actually exposing the extension.
+ */
+static void
+st_CopyImageSubData(struct gl_context *ctx,
+struct gl_texture_image *src_image,
+int src_x, int src_y, int src_z,
+struct gl_texture_image *dst_image,
+int dst_x, int dst_y, int dst_z,
+int src_width, int src_height)
+{
+   struct st_context *st = st_context(ctx);
+   struct pipe_context *pipe = st-pipe;
+   struct st_texture_image *src = st_texture_image(src_image);
+   struct st_texture_image *dst = st_texture_image(dst_image);
+
+   struct pipe_box box;
+
+   u_box_2d_zslice(src_x, src_y, src_z, src_width, src_height, box);
+   pipe-resource_copy_region(pipe, dst-pt, dst_image-Level,
+  dst_x, dst_y, dst_z,
+  src-pt, src_image-Level,
+  box);
+}
+
 
 void
 st_init_texture_functions(struct dd_function_table *functions)
@@ -1905,4 +1930,6 @@ st_init_texture_functions(struct dd_function_table 
*functions)
 
functions-AllocTextureStorage = st_AllocTextureStorage;
functions-TextureView = st_TextureView;
+
+   functions-CopyImageSubData = st_CopyImageSubData;
 }

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


Mesa (master): radeonsi: fix indirect indexing of MSAA textures

2015-08-19 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 421b809db10b939d9baf7b904560c37b68261aaf
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=421b809db10b939d9baf7b904560c37b68261aaf

Author: Marek Olšák marek.ol...@amd.com
Date:   Sat Aug 15 11:51:48 2015 +0200

radeonsi: fix indirect indexing of MSAA textures

FMASK wasn't handled correctly.

Reviewed-by: Michel Dänzer michel.daen...@amd.com

---

 src/gallium/drivers/radeonsi/si_shader.c |   17 +
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 4288e9b..066732d 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -2277,7 +2277,7 @@ static void tex_fetch_args(
unsigned sampler_index;
unsigned num_deriv_channels = 0;
bool has_offset = HAVE_LLVM = 0x0305 ? inst-Texture.NumOffsets  0 : 
false;
-   LLVMValueRef res_ptr, samp_ptr;
+   LLVMValueRef res_ptr, samp_ptr, fmask_ptr = NULL;
 
sampler_src = emit_data-inst-Instruction.NumSrcRegs - 1;
sampler_index = emit_data-inst-Src[sampler_src].Register.Index;
@@ -2293,9 +2293,19 @@ static void tex_fetch_args(
 
samp_ptr = LLVMGetParam(si_shader_ctx-radeon_bld.main_fn, 
SI_PARAM_SAMPLER);
samp_ptr = build_indexed_load_const(si_shader_ctx, samp_ptr, 
ind_index);
+
+   if (target == TGSI_TEXTURE_2D_MSAA ||
+   target == TGSI_TEXTURE_2D_ARRAY_MSAA) {
+   ind_index = LLVMBuildAdd(gallivm-builder, ind_index,
+lp_build_const_int32(gallivm,
+ 
SI_FMASK_TEX_OFFSET), );
+   fmask_ptr = 
LLVMGetParam(si_shader_ctx-radeon_bld.main_fn, SI_PARAM_RESOURCE);
+   fmask_ptr = build_indexed_load_const(si_shader_ctx, 
res_ptr, ind_index);
+   }
} else {
res_ptr = si_shader_ctx-resources[sampler_index];
samp_ptr = si_shader_ctx-samplers[sampler_index];
+   fmask_ptr = si_shader_ctx-resources[SI_FMASK_TEX_OFFSET + 
sampler_index];
}
 
if (target == TGSI_TEXTURE_BUFFER) {
@@ -2493,7 +2503,7 @@ static void tex_fetch_args(
txf_emit_data.dst_type = LLVMVectorType(
LLVMInt32TypeInContext(gallivm-context), 4);
txf_emit_data.args[0] = lp_build_gather_values(gallivm, 
txf_address, txf_count);
-   txf_emit_data.args[1] = 
si_shader_ctx-resources[SI_FMASK_TEX_OFFSET + sampler_index];
+   txf_emit_data.args[1] = fmask_ptr;
txf_emit_data.args[2] = lp_build_const_int32(gallivm, 
inst.Texture.Texture);
txf_emit_data.arg_count = 3;
 
@@ -2524,8 +2534,7 @@ static void tex_fetch_args(
 * resource descriptor is 0 (invalid),
 */
LLVMValueRef fmask_desc =
-   LLVMBuildBitCast(gallivm-builder,
-
si_shader_ctx-resources[SI_FMASK_TEX_OFFSET + sampler_index],
+   LLVMBuildBitCast(gallivm-builder, fmask_ptr,
 LLVMVectorType(uint_bld-elem_type, 
8), );
 
LLVMValueRef fmask_word1 =

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


Mesa (master): radeonsi: fix a typo as_es - as_ls in a string

2015-08-19 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 3b1e283d884b0c5c93c32d3e4a0325fbf2e96234
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b1e283d884b0c5c93c32d3e4a0325fbf2e96234

Author: Marek Olšák marek.ol...@amd.com
Date:   Wed Aug 19 00:56:33 2015 +0200

radeonsi: fix a typo as_es - as_ls in a string

Trivial.

---

 src/gallium/drivers/radeonsi/si_shader.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 066732d..fa6c15a 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -3982,7 +3982,7 @@ static void si_dump_key(unsigned shader, union 
si_shader_key *key)
fprintf(stderr,   es_enabled_outputs = 0x%PRIx64\n,
key-vs.es_enabled_outputs);
fprintf(stderr,   as_es = %u\n, key-vs.as_es);
-   fprintf(stderr,   as_es = %u\n, key-vs.as_ls);
+   fprintf(stderr,   as_ls = %u\n, key-vs.as_ls);
break;
 
case PIPE_SHADER_TESS_CTRL:

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


Mesa (master): winsys/amdgpu: fix the type of memory usage counters

2015-08-19 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 5fb0180592b124857e2e0369e2cdee74bd552bb9
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fb0180592b124857e2e0369e2cdee74bd552bb9

Author: Marek Olšák marek.ol...@amd.com
Date:   Mon Aug 17 19:55:57 2015 +0200

winsys/amdgpu: fix the type of memory usage counters

If the 32-bit types overflowed, the driver could submit an IB that uses much
more memory than is available.

Reviewed-by: Alex Deucher alexander.deuc...@amd.com
Reviewed-by: Edward O'Callaghan eocallag...@alterapraxis.com
Reviewed-by: Michel Dänzer michel.daen...@amd.com

---

 src/gallium/winsys/amdgpu/drm/amdgpu_cs.h |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h 
b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
index 0842259..12c6b62 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
@@ -77,8 +77,8 @@ struct amdgpu_cs {
 
int buffer_indices_hashlist[512];
 
-   unsignedused_vram;
-   unsignedused_gart;
+   uint64_tused_vram;
+   uint64_tused_gart;
 
unsignedmax_dependencies;
 };

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


Mesa (master): nir: Use nir_builder in nir_lower_io's get_io_offset().

2015-08-19 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: ab83be590d4b45f50461a004b672f7640a4d8f53
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab83be590d4b45f50461a004b672f7640a4d8f53

Author: Kenneth Graunke kenn...@whitecape.org
Date:   Wed Aug 12 11:26:34 2015 -0700

nir: Use nir_builder in nir_lower_io's get_io_offset().

Much more readable.

Signed-off-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Jason Ekstrand jason.ekstr...@intel.com

---

 src/glsl/nir/nir_lower_io.c |   42 ++
 1 file changed, 14 insertions(+), 28 deletions(-)

diff --git a/src/glsl/nir/nir_lower_io.c b/src/glsl/nir/nir_lower_io.c
index f3d11d4..d33aefe 100644
--- a/src/glsl/nir/nir_lower_io.c
+++ b/src/glsl/nir/nir_lower_io.c
@@ -32,8 +32,10 @@
  */
 
 #include nir.h
+#include nir_builder.h
 
 struct lower_io_state {
+   nir_builder builder;
void *mem_ctx;
bool is_scalar;
 };
@@ -242,6 +244,9 @@ get_io_offset(nir_deref_var *deref, nir_instr *instr, 
nir_src *indirect,
bool found_indirect = false;
unsigned base_offset = 0;
 
+   nir_builder *b = state-builder;
+   nir_builder_insert_before_instr(b, instr);
+
nir_deref *tail = deref-deref;
while (tail-child != NULL) {
   const struct glsl_type *parent_type = tail-type;
@@ -254,38 +259,18 @@ get_io_offset(nir_deref_var *deref, nir_instr *instr, 
nir_src *indirect,
  base_offset += size * deref_array-base_offset;
 
  if (deref_array-deref_array_type == nir_deref_array_type_indirect) {
-nir_load_const_instr *load_const =
-   nir_load_const_instr_create(state-mem_ctx, 1);
-load_const-value.u[0] = size;
-nir_instr_insert_before(instr, load_const-instr);
-
-nir_alu_instr *mul = nir_alu_instr_create(state-mem_ctx,
-  nir_op_imul);
-mul-src[0].src.is_ssa = true;
-mul-src[0].src.ssa = load_const-def;
-nir_src_copy(mul-src[1].src, deref_array-indirect,
- state-mem_ctx);
-mul-dest.write_mask = 1;
-nir_ssa_dest_init(mul-instr, mul-dest.dest, 1, NULL);
-nir_instr_insert_before(instr, mul-instr);
+nir_ssa_def *mul =
+   nir_imul(b, nir_imm_int(b, size),
+nir_ssa_for_src(b, deref_array-indirect, 1));
 
 if (found_indirect) {
-   nir_alu_instr *add = nir_alu_instr_create(state-mem_ctx,
- nir_op_iadd);
-   add-src[0].src = *indirect;
-   add-src[1].src.is_ssa = true;
-   add-src[1].src.ssa = mul-dest.dest.ssa;
-   add-dest.write_mask = 1;
-   nir_ssa_dest_init(add-instr, add-dest.dest, 1, NULL);
-   nir_instr_insert_before(instr, add-instr);
-
-   indirect-is_ssa = true;
-   indirect-ssa = add-dest.dest.ssa;
+   indirect-ssa =
+  nir_iadd(b, nir_ssa_for_src(b, *indirect, 1), mul);
 } else {
-   indirect-is_ssa = true;
-   indirect-ssa = mul-dest.dest.ssa;
-   found_indirect = true;
+   indirect-ssa = mul;
 }
+indirect-is_ssa = true;
+found_indirect = true;
  }
   } else if (tail-deref_type == nir_deref_type_struct) {
  nir_deref_struct *deref_struct = nir_deref_as_struct(tail);
@@ -414,6 +399,7 @@ nir_lower_io_impl(nir_function_impl *impl, bool is_scalar)
 {
struct lower_io_state state;
 
+   nir_builder_init(state.builder, impl);
state.mem_ctx = ralloc_parent(impl);
state.is_scalar = is_scalar;
 

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


Mesa (master): nir: Pull nir_lower_io' s load_op selection into a helper function.

2015-08-19 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: ed2afec3fc2210ee737216981a41df8a396b11f6
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ed2afec3fc2210ee737216981a41df8a396b11f6

Author: Kenneth Graunke kenn...@whitecape.org
Date:   Wed Aug 12 10:57:31 2015 -0700

nir: Pull nir_lower_io's load_op selection into a helper function.

Makes the function a bit smaller.

Signed-off-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Jason Ekstrand jason.ekstr...@intel.com

---

 src/glsl/nir/nir_lower_io.c |   39 ++-
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/src/glsl/nir/nir_lower_io.c b/src/glsl/nir/nir_lower_io.c
index 71bfd34..f3d11d4 100644
--- a/src/glsl/nir/nir_lower_io.c
+++ b/src/glsl/nir/nir_lower_io.c
@@ -299,6 +299,25 @@ get_io_offset(nir_deref_var *deref, nir_instr *instr, 
nir_src *indirect,
return base_offset;
 }
 
+static nir_intrinsic_op
+load_op(nir_variable_mode mode, bool has_indirect)
+{
+   nir_intrinsic_op op;
+   switch (mode) {
+   case nir_var_shader_in:
+  op = has_indirect ? nir_intrinsic_load_input_indirect :
+  nir_intrinsic_load_input;
+  break;
+   case nir_var_uniform:
+  op = has_indirect ? nir_intrinsic_load_uniform_indirect :
+  nir_intrinsic_load_uniform;
+  break;
+   default:
+  unreachable(Unknown variable mode);
+   }
+   return op;
+}
+
 static bool
 nir_lower_io_block(nir_block *block, void *void_state)
 {
@@ -318,23 +337,9 @@ nir_lower_io_block(nir_block *block, void *void_state)
 
  bool has_indirect = deref_has_indirect(intrin-variables[0]);
 
- /* Figure out the opcode */
- nir_intrinsic_op load_op;
- switch (mode) {
- case nir_var_shader_in:
-load_op = has_indirect ? nir_intrinsic_load_input_indirect :
- nir_intrinsic_load_input;
-break;
- case nir_var_uniform:
-load_op = has_indirect ? nir_intrinsic_load_uniform_indirect :
- nir_intrinsic_load_uniform;
-break;
- default:
-unreachable(Unknown variable mode);
- }
-
- nir_intrinsic_instr *load = nir_intrinsic_instr_create(state-mem_ctx,
-load_op);
+ nir_intrinsic_instr *load =
+nir_intrinsic_instr_create(state-mem_ctx,
+   load_op(mode, has_indirect));
  load-num_components = intrin-num_components;
 
  nir_src indirect;

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