[Mesa-dev] [PATCH] nv50: TXF already has integer arguments, don't try to convert from f32

2013-12-08 Thread Ilia Mirkin
Fixes the texelFetch piglit tests.

Signed-off-by: Ilia Mirkin 
---

Verified a few things, but it's hard to check this fully. They array-texture
piglit test fails if the conversion isn't done at all, and texelFetch starts
passing if the conversion is removed.

Dunno if this is the sort of thing worth sticking a stable tag on, so leaving
it out. Feel free to add on commit.

 .../drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp| 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp 
b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
index caaf09f..07f3a21 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
@@ -575,14 +575,16 @@ NV50LoweringPreSSA::handleTEX(TexInstruction *i)
   if (i->op == OP_TXB || i->op == OP_TXL)
  i->swapSources(dref, lod);
 
-   // array index must be converted to u32
if (i->tex.target.isArray()) {
-  Value *layer = i->getSrc(arg - 1);
-  LValue *src = new_LValue(func, FILE_GPR);
-  bld.mkCvt(OP_CVT, TYPE_U32, src, TYPE_F32, layer);
-  bld.mkOp2(OP_MIN, TYPE_U32, src, src, bld.loadImm(NULL, 511));
-  i->setSrc(arg - 1, src);
-
+  if (i->op != OP_TXF) {
+ // array index must be converted to u32, but it's already an integer
+ // for TXF
+ Value *layer = i->getSrc(arg - 1);
+ LValue *src = new_LValue(func, FILE_GPR);
+ bld.mkCvt(OP_CVT, TYPE_U32, src, TYPE_F32, layer);
+ bld.mkOp2(OP_MIN, TYPE_U32, src, src, bld.loadImm(NULL, 511));
+ i->setSrc(arg - 1, src);
+  }
   if (i->tex.target.isCube()) {
  std::vector acube, a2d;
  int c;
-- 
1.8.3.2

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


[Mesa-dev] [PATCH 0/3] gl_SampleMaskIn[] support

2013-12-08 Thread Chris Forbes
This adds another tiny piece of ARB_gpu_shader5.

>From the ARB_gpu_shader5 specification:

The variable gl_SampleMaskIn is an array of integers, each holding a
bitfield indicating the set of samples covered by the primitive generating
the fragment during multisample rasterization.  The array has ceil(/32)
elements, where  is the maximum number of color samples supported by
the implementation.  Bit  or word  in the bitfield is set if and
only if the sample numbered *32+ is considered covered for this
fragment shader invocation.

At this stage we statically set the size of the array to be 1, same as
we do for ARB_sample_shading's gl_SampleMask[] output, since none of our
supported hardware can do >32x MSAA.

-- Chris


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


[Mesa-dev] [PATCH 1/3] mesa: add SYSTEM_VALUE_SAMPLE_MASK_IN

2013-12-08 Thread Chris Forbes
Signed-off-by: Chris Forbes 
---
 src/mesa/main/mtypes.h | 14 --
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index db3cc3b..29e3e12 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -280,6 +280,7 @@ typedef enum
  */
 #define SYSTEM_BIT_SAMPLE_ID BITFIELD64_BIT(SYSTEM_VALUE_SAMPLE_ID)
 #define SYSTEM_BIT_SAMPLE_POS BITFIELD64_BIT(SYSTEM_VALUE_SAMPLE_POS)
+#define SYSTEM_BIT_SAMPLE_MASK_IN BITFIELD64_BIT(SYSTEM_VALUE_SAMPLE_MASK_IN)
 
 /**
  * Determine if the given gl_varying_slot appears in the fragment shader.
@@ -1968,12 +1969,13 @@ typedef enum
  */
 typedef enum
 {
-   SYSTEM_VALUE_FRONT_FACE,  /**< Fragment shader only (not done yet) */
-   SYSTEM_VALUE_VERTEX_ID,   /**< Vertex shader only */
-   SYSTEM_VALUE_INSTANCE_ID, /**< Vertex shader only */
-   SYSTEM_VALUE_SAMPLE_ID,   /**< Fragment shader only */
-   SYSTEM_VALUE_SAMPLE_POS,  /**< Fragment shader only */
-   SYSTEM_VALUE_MAX  /**< Number of values */
+   SYSTEM_VALUE_FRONT_FACE, /**< Fragment shader only (not done yet) */
+   SYSTEM_VALUE_VERTEX_ID,  /**< Vertex shader only */
+   SYSTEM_VALUE_INSTANCE_ID,/**< Vertex shader only */
+   SYSTEM_VALUE_SAMPLE_ID,  /**< Fragment shader only */
+   SYSTEM_VALUE_SAMPLE_POS, /**< Fragment shader only */
+   SYSTEM_VALUE_SAMPLE_MASK_IN, /**< Fragment shader only */
+   SYSTEM_VALUE_MAX /**< Number of values */
 } gl_system_value;
 
 
-- 
1.8.5.1

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


[Mesa-dev] [PATCH 2/3] glsl: add gl_SampleMaskIn[] builtin

2013-12-08 Thread Chris Forbes
Signed-off-by: Chris Forbes 
---
 src/glsl/builtin_variables.cpp | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/glsl/builtin_variables.cpp b/src/glsl/builtin_variables.cpp
index d0e76e3..19643ec 100644
--- a/src/glsl/builtin_variables.cpp
+++ b/src/glsl/builtin_variables.cpp
@@ -858,6 +858,10 @@ builtin_variable_generator::generate_fs_special_vars()
*/
   add_output(FRAG_RESULT_SAMPLE_MASK, array(int_t, 1), "gl_SampleMask");
}
+
+   if (state->ARB_gpu_shader5_enable) {
+  add_system_value(SYSTEM_VALUE_SAMPLE_MASK_IN, array(int_t, 1), 
"gl_SampleMaskIn");
+   }
 }
 
 
-- 
1.8.5.1

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


[Mesa-dev] [PATCH 3/3] i965/fs: add support for gl_SampleMaskIn[]

2013-12-08 Thread Chris Forbes
Signed-off-by: Chris Forbes 
---
 src/mesa/drivers/dri/i965/brw_fs.cpp | 22 +-
 src/mesa/drivers/dri/i965/brw_fs.h   |  1 +
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp |  2 ++
 src/mesa/drivers/dri/i965/brw_wm.h   |  1 +
 src/mesa/drivers/dri/i965/gen7_wm_state.c|  4 
 5 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
b/src/mesa/drivers/dri/i965/brw_fs.cpp
index dbd93e7..9063563 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1255,6 +1255,16 @@ fs_visitor::emit_sampleid_setup(ir_variable *ir)
return reg;
 }
 
+fs_reg *
+fs_visitor::emit_samplemaskin_setup(ir_variable *ir)
+{
+   assert(brw->gen >= 7);
+   this->current_annotation = "compute gl_SampleMaskIn";
+   fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type);
+   emit(MOV(*reg, fs_reg(retype(brw_vec8_grf(c->sample_mask_reg, 0), 
BRW_REGISTER_TYPE_D;
+   return reg;
+}
+
 fs_reg
 fs_visitor::fix_math_operand(fs_reg src)
 {
@@ -3073,7 +3083,17 @@ fs_visitor::setup_payload_gen6()
   c->nr_payload_regs++;
}
 
-   /* R32-: bary for 32-pixel. */
+   /* R32: MSAA input coverage mask */
+   if (fp->Base.SystemValuesRead & SYSTEM_BIT_SAMPLE_MASK_IN) {
+  c->sample_mask_reg = c->nr_payload_regs;
+  c->nr_payload_regs++;
+  if (dispatch_width == 16) {
+ /* R33: input coverage mask if not 8-wide. */
+ c->nr_payload_regs++;
+  }
+   }
+
+   /* R34-: bary for 32-pixel. */
/* R58-59: interp W for 32-pixel. */
 
if (fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h 
b/src/mesa/drivers/dri/i965/brw_fs.h
index e516046..9bef07c 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -340,6 +340,7 @@ public:
fs_reg *emit_frontfacing_interpolation(ir_variable *ir);
fs_reg *emit_samplepos_setup(ir_variable *ir);
fs_reg *emit_sampleid_setup(ir_variable *ir);
+   fs_reg *emit_samplemaskin_setup(ir_variable *ir);
fs_reg *emit_general_interpolation(ir_variable *ir);
void emit_interpolation_setup_gen4();
void emit_interpolation_setup_gen6();
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp 
b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index a28dc6c..da75410 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -136,6 +136,8 @@ fs_visitor::visit(ir_variable *ir)
 reg = emit_samplepos_setup(ir);
   } else if (ir->location == SYSTEM_VALUE_SAMPLE_ID) {
 reg = emit_sampleid_setup(ir);
+  } else if (ir->location == SYSTEM_VALUE_SAMPLE_MASK_IN) {
+ reg = emit_samplemaskin_setup(ir);
   }
}
 
diff --git a/src/mesa/drivers/dri/i965/brw_wm.h 
b/src/mesa/drivers/dri/i965/brw_wm.h
index 556b5ae..2ee126b 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.h
+++ b/src/mesa/drivers/dri/i965/brw_wm.h
@@ -88,6 +88,7 @@ struct brw_wm_compile {
uint8_t aa_dest_stencil_reg;
uint8_t dest_depth_reg;
uint8_t sample_pos_reg;
+   uint8_t sample_mask_reg;
uint8_t barycentric_coord_reg[BRW_WM_BARYCENTRIC_INTERP_MODE_COUNT];
uint8_t nr_payload_regs;
GLuint source_depth_to_render_target:1;
diff --git a/src/mesa/drivers/dri/i965/gen7_wm_state.c 
b/src/mesa/drivers/dri/i965/gen7_wm_state.c
index abbc73c..b6561bb 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_state.c
@@ -112,6 +112,10 @@ upload_wm_state(struct brw_context *brw)
   dw2 |= GEN7_WM_MSDISPMODE_PERSAMPLE;
}
 
+   if (fp->program.Base.SystemValuesRead & SYSTEM_BIT_SAMPLE_MASK_IN) {
+  dw1 |= GEN7_WM_USES_INPUT_COVERAGE_MASK;
+   }
+
BEGIN_BATCH(3);
OUT_BATCH(_3DSTATE_WM << 16 | (3 - 2));
OUT_BATCH(dw1);
-- 
1.8.5.1

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


[Mesa-dev] [Bug 63132] [r600/llvm] src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c:1887:lp_emit_declaration_soa: Assertion `idx < 256' failed.

2013-12-08 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=63132

--- Comment #7 from Laurent carlier  ---
pixmark_piano_benchmark works since
http://cgit.freedesktop.org/mesa/mesa/commit/?id=797894036d1196805f02a2428fff82ece5855af7

It's slow but no more llvm errors

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 3/3] i965/fs: add support for gl_SampleMaskIn[]

2013-12-08 Thread Kenneth Graunke
On 12/08/2013 12:23 AM, Chris Forbes wrote:
> Signed-off-by: Chris Forbes 
> ---
>  src/mesa/drivers/dri/i965/brw_fs.cpp | 22 +-
>  src/mesa/drivers/dri/i965/brw_fs.h   |  1 +
>  src/mesa/drivers/dri/i965/brw_fs_visitor.cpp |  2 ++
>  src/mesa/drivers/dri/i965/brw_wm.h   |  1 +
>  src/mesa/drivers/dri/i965/gen7_wm_state.c|  4 
>  5 files changed, 29 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
> b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index dbd93e7..9063563 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -1255,6 +1255,16 @@ fs_visitor::emit_sampleid_setup(ir_variable *ir)
> return reg;
>  }
>  
> +fs_reg *
> +fs_visitor::emit_samplemaskin_setup(ir_variable *ir)
> +{
> +   assert(brw->gen >= 7);
> +   this->current_annotation = "compute gl_SampleMaskIn";
> +   fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type);
> +   emit(MOV(*reg, fs_reg(retype(brw_vec8_grf(c->sample_mask_reg, 0), 
> BRW_REGISTER_TYPE_D;
> +   return reg;
> +}
> +
>  fs_reg
>  fs_visitor::fix_math_operand(fs_reg src)
>  {
> @@ -3073,7 +3083,17 @@ fs_visitor::setup_payload_gen6()
>c->nr_payload_regs++;
> }
>  
> -   /* R32-: bary for 32-pixel. */
> +   /* R32: MSAA input coverage mask */
> +   if (fp->Base.SystemValuesRead & SYSTEM_BIT_SAMPLE_MASK_IN) {

I'd appreciate an

  assert(brw->gen >= 7);

here, since R32 and R33 aren't coverage masks on Gen6.  (In fact, they
don't seem to exist...)

> +  c->sample_mask_reg = c->nr_payload_regs;
> +  c->nr_payload_regs++;
> +  if (dispatch_width == 16) {
> + /* R33: input coverage mask if not 8-wide. */
> + c->nr_payload_regs++;
> +  }
> +   }
> +
> +   /* R34-: bary for 32-pixel. */
> /* R58-59: interp W for 32-pixel. */
>  
> if (fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.h 
> b/src/mesa/drivers/dri/i965/brw_fs.h
> index e516046..9bef07c 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.h
> +++ b/src/mesa/drivers/dri/i965/brw_fs.h
> @@ -340,6 +340,7 @@ public:
> fs_reg *emit_frontfacing_interpolation(ir_variable *ir);
> fs_reg *emit_samplepos_setup(ir_variable *ir);
> fs_reg *emit_sampleid_setup(ir_variable *ir);
> +   fs_reg *emit_samplemaskin_setup(ir_variable *ir);
> fs_reg *emit_general_interpolation(ir_variable *ir);
> void emit_interpolation_setup_gen4();
> void emit_interpolation_setup_gen6();
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp 
> b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> index a28dc6c..da75410 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> @@ -136,6 +136,8 @@ fs_visitor::visit(ir_variable *ir)
>reg = emit_samplepos_setup(ir);
>} else if (ir->location == SYSTEM_VALUE_SAMPLE_ID) {
>reg = emit_sampleid_setup(ir);
> +  } else if (ir->location == SYSTEM_VALUE_SAMPLE_MASK_IN) {
> + reg = emit_samplemaskin_setup(ir);
>}
> }
>  
> diff --git a/src/mesa/drivers/dri/i965/brw_wm.h 
> b/src/mesa/drivers/dri/i965/brw_wm.h
> index 556b5ae..2ee126b 100644
> --- a/src/mesa/drivers/dri/i965/brw_wm.h
> +++ b/src/mesa/drivers/dri/i965/brw_wm.h
> @@ -88,6 +88,7 @@ struct brw_wm_compile {
> uint8_t aa_dest_stencil_reg;
> uint8_t dest_depth_reg;
> uint8_t sample_pos_reg;
> +   uint8_t sample_mask_reg;
> uint8_t barycentric_coord_reg[BRW_WM_BARYCENTRIC_INTERP_MODE_COUNT];
> uint8_t nr_payload_regs;
> GLuint source_depth_to_render_target:1;
> diff --git a/src/mesa/drivers/dri/i965/gen7_wm_state.c 
> b/src/mesa/drivers/dri/i965/gen7_wm_state.c
> index abbc73c..b6561bb 100644
> --- a/src/mesa/drivers/dri/i965/gen7_wm_state.c
> +++ b/src/mesa/drivers/dri/i965/gen7_wm_state.c
> @@ -112,6 +112,10 @@ upload_wm_state(struct brw_context *brw)
>dw2 |= GEN7_WM_MSDISPMODE_PERSAMPLE;
> }
>  
> +   if (fp->program.Base.SystemValuesRead & SYSTEM_BIT_SAMPLE_MASK_IN) {
> +  dw1 |= GEN7_WM_USES_INPUT_COVERAGE_MASK;
> +   }
> +
> BEGIN_BATCH(3);
> OUT_BATCH(_3DSTATE_WM << 16 | (3 - 2));
> OUT_BATCH(dw1);
> 

Otherwise, this series looks good!  All three are:
Reviewed-by: Kenneth Graunke 
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH v2] dri megadriver_stub: provide compatibility with older DRI loader

2013-12-08 Thread Kenneth Graunke
On 12/06/2013 07:11 PM, Jordan Justen wrote:
> To help the transition period when DRI loaders are being updated
> to support the newer __driDriverExtensions_foo mechanism,
> we populate __DRIextension with the extensions returned
> by __driDriverExtensions_foo during a library contructor

constructor (typo)

> function.
> 
> We find the driver foo's name by using the dladdr function
> which gives the path of the dynamic library's name that
> was being loaded.
> 
> v2:
>  * dladdr on public symbol __driDriverExtensions rather
>than static megadriver_stub_init.
>  * Incorporate fixes and suggestions from Keith
> 
> Signed-off-by: Jordan Justen 
> Cc: "10.0" 
> ---
>  src/mesa/drivers/dri/common/megadriver_stub.c | 125 
> ++
>  1 file changed, 125 insertions(+)
> 
> diff --git a/src/mesa/drivers/dri/common/megadriver_stub.c 
> b/src/mesa/drivers/dri/common/megadriver_stub.c
> index 6bf5d73..cb1078d 100644
> --- a/src/mesa/drivers/dri/common/megadriver_stub.c
> +++ b/src/mesa/drivers/dri/common/megadriver_stub.c
> @@ -23,6 +23,131 @@
>  
>  #include 
>  #include "dri_util.h"
> +#include 
> +#include "main/macros.h"
> +
> +/* The extensions that allow the megadriver stub to provide backward
> + * compatibility for the older DRI driver loader require GNU
> + * extensions from dlfcn.h.
> + */
> +#ifdef _GNU_SOURCE
> +
> +#define MEGADRIVER_STUB_MAX_EXTENSIONS 10
> +#define LIB_PATH_SUFFIX "_dri.so"
> +#define LIB_PATH_SUFFIX_LENGTH (sizeof(LIB_PATH_SUFFIX)-1)
> +
> +/* This is the table of extensions that the loader will dlsym() for.
> + *
> + * Initially it is empty for the megadriver stub, but the library
> + * contructor may initialize it based on the name of the library that
> + * is being loaded.
> + */
> +PUBLIC const __DRIextension *
> +__driDriverExtensions[MEGADRIVER_STUB_MAX_EXTENSIONS] = {
> +   NULL
> +};
> +
> +/**
> + * This is a contructor function for the megadriver dynamic library.

constructor (typo)

> + *
> + * When the driver is dlopen'ed, this function will run. It will
> + * search for the name of the foo_dri.so file that was opened using
> + * the dladdr function.
> + *
> + * After finding foo's name, it will call __driDriverGetExtensions_foo
> + * and use the return to update __driDriverExtensions to enable
> + * compatibility with older DRI driver loaders.
> + */
> +__attribute__((constructor)) static void
> +megadriver_stub_init(void)
> +{
> +   Dl_info info;
> +   char *driver_name;
> +   size_t name_len;
> +   char *get_extensions_name;
> +   const __DRIextension **(*get_extensions)(void);
> +   const __DRIextension **extensions;
> +   int i;
> +
> +   /* Call dladdr on __driDriverExtensions. We are really
> +* interested in the returned info.dli_fname so we can
> +* figure out the path name of the library being loaded.
> +*/
> +   i = dladdr((void*) __driDriverExtensions, &info);
> +   if (i == 0)
> +  return;
> +
> +   /* Search for the last '/' character in the path. */
> +   driver_name = strrchr(info.dli_fname, '/');
> +   if (driver_name != NULL) {
> +  /* Skip '/' character */
> +  driver_name++;
> +   } else {
> +  /* Try using the start of the path */
> +  driver_name = (char*) info.dli_fname;
> +   }
> +
> +   /* Make sure the path ends with _dri.so */
> +   name_len = strlen(driver_name);
> +   i = name_len - LIB_PATH_SUFFIX_LENGTH;
> +   if (i < 0 || strcmp(driver_name + i, LIB_PATH_SUFFIX) != 0)
> +  return;
> +
> +   /* Duplicate the string so we can modify it.
> +* So far we've been using info.dli_fname.
> +*/
> +   driver_name = strdup(driver_name);
> +   if (!driver_name)
> +  return;
> +
> +   /* The path ends with _dri.so. Chop this part of the
> +* string off. Then we'll have the driver's final name.
> +*/
> +   driver_name[i] = '\0';
> +
> +   i = asprintf(&get_extensions_name, "%s_%s",
> +__DRI_DRIVER_GET_EXTENSIONS, driver_name);
> +   free(driver_name);
> +   if (i == -1)
> +  return;
> +
> +   /* dlsym to get the driver's get extensions function. We
> +* don't have the dlopen handle, so we have to use
> +* RTLD_DEFAULT. It seems unlikely that the symbol will
> +* be found in another library, but this isn't optimal.
> +*/
> +   get_extensions = dlsym(RTLD_DEFAULT, get_extensions_name);
> +   free(get_extensions_name);
> +   if (!get_extensions)
> +  return;
> +
> +   /* Use the newer DRI loader entrypoint to find extensions.
> +* We will then expose these extensions via the older
> +* __driDriverExtensions symbol.
> +*/
> +   extensions = get_extensions();
> +
> +   /* Copy the extensions into the __driDriverExtensions array
> +* we declared.
> +*/
> +   for (i = 0; i < ARRAY_SIZE(__driDriverExtensions); i++) {
> +  __driDriverExtensions[i] = extensions[i];
> +  if (extensions[i] == NULL)
> + break;
> +   }
> +
> +   /* If the driver had more extensions than we reserved, then
> +* bail out.
> +*/

Re: [Mesa-dev] [PATCH 3/3] i965/fs: add support for gl_SampleMaskIn[]

2013-12-08 Thread Chris Forbes
> I'd appreciate an
>
>  assert(brw->gen >= 7);


Will do, thanks for the review.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [Nouveau] [PATCH] nv50: enable MPEG-4 for NVA3+ (VP4.0)

2013-12-08 Thread Martin Peres

On 07/12/2013 17:09, Ilia Mirkin wrote:

On Sat, Dec 7, 2013 at 8:11 AM, Martin Peres  wrote:

From: Martin Peres 

This patch is a follow-up from Ilia Mirkin's enable H.264 patch which
solves the problem that prevented MPEG-4 videos to play correctly.

Tested on an nva3.


I might reword this as

"""
VP3/VP4 now work on all the codecs they are supposed to, remove old restriction.

Tested on NVA3
"""

Or something like that...


Yeah, that would make more sense. Feel free to reword it before committing.

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


[Mesa-dev] [PATCH] nv50: enable MPEG-4 for NVA3+ (VP4.0)

2013-12-08 Thread Martin Peres
From: Martin Peres 

This patch is a follow-up from Ilia Mirkin's enable H.264 patch which
solves the problem that prevented MPEG-4 videos to play correctly.

Tested on an nva3.

Signed-off-by: Martin Peres 
Tested-by: Martin Peres 
Cc: "10.0" 
---
 src/gallium/drivers/nouveau/nouveau_vp3_video.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nouveau_vp3_video.c 
b/src/gallium/drivers/nouveau/nouveau_vp3_video.c
index 2f4196c..0843b78 100644
--- a/src/gallium/drivers/nouveau/nouveau_vp3_video.c
+++ b/src/gallium/drivers/nouveau/nouveau_vp3_video.c
@@ -362,11 +362,6 @@ nouveau_vp3_screen_get_video_param(struct pipe_screen 
*pscreen,
enum pipe_video_format codec = u_reduce_video_profile(profile);
switch (param) {
case PIPE_VIDEO_CAP_SUPPORTED:
-  /* For now, mpeg4 doesn't work on pre-nvc0. */
-  if (chipset < 0xc0)
- return codec == PIPE_VIDEO_FORMAT_MPEG12 ||
-codec == PIPE_VIDEO_FORMAT_VC1 ||
-codec == PIPE_VIDEO_FORMAT_MPEG4_AVC;
   /* In the general case, this should work, once the pre-nvc0 problems are
* resolved. */
   return profile >= PIPE_VIDEO_PROFILE_MPEG1 && (
-- 
1.8.4.2

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


[Mesa-dev] [Bug 69874] Automake throws a lot of "[...] option 'subdir-objects' is disabled"

2013-12-08 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=69874

Alexandre Demers  changed:

   What|Removed |Added

 CC||alexandre.f.dem...@gmail.co
   ||m

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 4/5] radeonsi: fix binding the dummy pixel shader

2013-12-08 Thread Michel Dänzer
On Fre, 2013-12-06 at 20:14 +0100, Marek Olšák wrote:
> On Fri, Dec 6, 2013 at 4:08 AM, Michel Dänzer  wrote:
> > On Don, 2013-12-05 at 18:43 +0100, Marek Olšák wrote:
> >> From: Marek Olšák 
> >>
> >> This fixes valgrind errors in glxinfo.
> >
> > [...]
> >
> >> diff --git a/src/gallium/drivers/radeonsi/si_state.c 
> >> b/src/gallium/drivers/radeonsi/si_state.c
> >> index 9831fd8..b644d56 100644
> >> --- a/src/gallium/drivers/radeonsi/si_state.c
> >> +++ b/src/gallium/drivers/radeonsi/si_state.c
> >> @@ -2282,15 +2282,12 @@ static void si_bind_vs_shader(struct pipe_context 
> >> *ctx, void *state)
> >>   if (rctx->vs_shader == sel)
> >>   return;
> >>
> >> - rctx->vs_shader = sel;
> >> -
> >> - if (sel && sel->current) {
> >> - si_pm4_bind_state(rctx, vs, sel->current->pm4);
> >> - rctx->b.streamout.stride_in_dw = sel->so.stride;
> >> - } else {
> >> - si_pm4_bind_state(rctx, vs, rctx->dummy_pixel_shader->pm4);
> >> - }
> >> + if (!sel || !sel->current)
> >> + return;
> >>
> >> + rctx->vs_shader = sel;
> >> + si_pm4_bind_state(rctx, vs, sel->current->pm4);
> >> + rctx->b.streamout.stride_in_dw = sel->so.stride;
> >>   rctx->b.flags |= R600_CONTEXT_INV_SHADER_CACHE;
> >>  }
> >
> > I've been wondering for a while if it's a good idea to use the dummy
> > pixel shader as the vertex shader... It might be safer to just not draw
> > anything if there is no vertex shader, or is there anything sensible a
> > dummy vertex shader could do?
> 
> The vertex shader must never be NULL when draw_vbo is called. The
> pixel shader can be NULL if pipe_rasterizer_state::rasterizer_discard
> is 1. That's the only reason we care about a NULL pixel shader.

That's only true if you ignore shader compiler failures.


-- 
Earthling Michel Dänzer|  http://www.amd.com
Libre software enthusiast  |Mesa and X developer

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


[Mesa-dev] [Bug 63132] [r600/llvm] src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c:1887:lp_emit_declaration_soa: Assertion `idx < 256' failed.

2013-12-08 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=63132

Michel Dänzer  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|mesa-dev@lists.freedesktop. |dri-devel@lists.freedesktop
   |org |.org
  Component|Mesa core   |Drivers/Gallium/r600

--- Comment #8 from Michel Dänzer  ---
Fixed for r600g/radeonsi in Mesa Git master:

commit 797894036d1196805f02a2428fff82ece5855af7
Author: Vincent Lejeune 
Date:   Mon Dec 2 00:54:44 2013 +0100

r600/llvm: Allow arbitrary amount of temps in tgsi to llvm

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev