[Mesa-dev] [Review Request (master branch)] svga: Use pipe_shader_state_from_tgsi to set shader state

2020-01-29 Thread Neha Bhende
Use pipe_shader_state_from_tgsi() to set shader state for transformed
shader so that we get all correct data for respective shader state.

This fixes several regressed glretrace, piglit crashes found during merging
upsteam mesa

Fixes: bf12bc2dd7a2 (draw: add nir info gathering and building support)

Reviewed-by: Charmaine Lee 
---
 src/gallium/drivers/svga/svga_state_tgsi_transform.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/svga/svga_state_tgsi_transform.c 
b/src/gallium/drivers/svga/svga_state_tgsi_transform.c
index b567aab6bc8..9d701b73772 100644
--- a/src/gallium/drivers/svga/svga_state_tgsi_transform.c
+++ b/src/gallium/drivers/svga/svga_state_tgsi_transform.c
@@ -131,7 +131,7 @@ emulate_point_sprite(struct svga_context *svga,
  tgsi_dump(new_tokens, 0);
   }
 
-  templ.tokens = new_tokens;
+  pipe_shader_state_from_tgsi(, new_tokens);
   templ.stream_output.num_outputs = 0;
 
   if (streamout) {
-- 
2.17.1

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


[Mesa-dev] [Review Request (master branch) 2/2] svga: fix size of format_conversion_table[]

2020-01-29 Thread Neha Bhende
Since we are now using sparse matrix for format_conversion_table,
we have to make sure we have last entry in table which gives the
sense of required size of format_conversion_table

Fixes: 84db6ba7 ("svga: Drop unsupported formats from the format table")

Reviewed-by: Charmaine Lee 
---
 src/gallium/drivers/svga/svga_format.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gallium/drivers/svga/svga_format.c 
b/src/gallium/drivers/svga/svga_format.c
index 488c68785c1..3f68f0cd67e 100644
--- a/src/gallium/drivers/svga/svga_format.c
+++ b/src/gallium/drivers/svga/svga_format.c
@@ -207,6 +207,8 @@ static const struct vgpu10_format_entry 
format_conversion_table[] =
[ PIPE_FORMAT_L32_SINT ] =  { SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_R32_SINT, TF_XXX1 },
[ PIPE_FORMAT_L32A32_SINT ] =   { SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_R32G32_SINT,  TF_XXXY },
[ PIPE_FORMAT_R10G10B10A2_UINT ] =  { SVGA3D_R10G10B10A2_UINT,
SVGA3D_R10G10B10A2_UINT, SVGA3D_R10G10B10A2_UINT, 0 },
+   /* Must specify following entry to give the sense of size of 
format_conversion_table[] */
+   [ PIPE_FORMAT_COUNT ] = {SVGA3D_FORMAT_INVALID, SVGA3D_FORMAT_INVALID,
SVGA3D_FORMAT_INVALID,   0 },
 };
 
 
-- 
2.17.1

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


[Mesa-dev] [Review Request (master branch) 1/2] svga: Ensure copy_region_fallback can be used for resource copy

2020-01-29 Thread Neha Bhende
Verify preconditions for copy_region_fallback() before using it, else
try cpu_blit if it fails to meet preconditions

Fixes crash with viewperf after merged-master-2019-12-10

Fixes: b30589cbd3dd ("mesa/st: Reuse st_choose_matching_format from 
st_choose_format()")

Reviewed-by: Charmaine Lee https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Review Request (master branch)] compiler: change datatype of 'spacing' in shader_info with uint_8

2020-01-29 Thread Neha Bhende
With msvc compiler, enum is signed int. It caused failures with
piglit test and glretrace gl4_arb_tessellation_shader_v1

Fixes 84a1a2578dab ('compiler: pack shader_info from 160 bytes to 96 bytes')

Fixes vmware bug 2480550

Reviewed-by: Brian Paul 
Reviewed-by: Charmaine Lee 
---
 src/compiler/shader_info.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h
index d13e51a47a6..233ee84893a 100644
--- a/src/compiler/shader_info.h
+++ b/src/compiler/shader_info.h
@@ -312,7 +312,7 @@ typedef struct shader_info {
 
  /** The number of vertices in the TCS output patch. */
  uint8_t tcs_vertices_out;
- enum gl_tess_spacing spacing:2;
+ uint8_t spacing:2; // enum gl_tess_spacing
 
  /** Is the vertex order counterclockwise? */
  bool ccw:1;
-- 
2.17.1

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


[Mesa-dev] [Review Request (master branch)] st/mesa: release tgsi tokens for shader states

2019-12-19 Thread Neha Bhende
Since we are using st_common_variant while creating variant for vertext
program, we can release tokens created in st_create_vp_variant which
are already stored in respective states.
This fix memory leak found with piglit tests

Fixes bc99b22a305b ('st/mesa: use a separate VS variant for the draw module')

Reviewed-by: Charmaine Lee 
---
 src/mesa/state_tracker/st_program.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/mesa/state_tracker/st_program.c 
b/src/mesa/state_tracker/st_program.c
index a9ff68c1f50..ef10399fa18 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -694,6 +694,10 @@ st_create_vp_variant(struct st_context *st,
else
   vpv->base.driver_shader = pipe->create_vs_state(pipe, );
 
+   if (state.tokens) {
+  tgsi_free_tokens(state.tokens);
+   }
+
return vpv;
 }
 
-- 
2.17.1

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


Re: [Mesa-dev] [PATCH] st/nir: fix illegal designated initializer in st_glsl_to_nir.cpp

2019-09-11 Thread Neha Bhende
Looks good to me.
Reviewed-by: Neha Bhende 

Regards,
Neha


From: Brian Paul 
Sent: Wednesday, September 11, 2019 11:23 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Charmaine Lee; aio.olive...@intel.com
Subject: [PATCH] st/nir: fix illegal designated initializer in 
st_glsl_to_nir.cpp

IIRC, designated initializers are not legal C++.
Fixes the MSVC build.

Fixes: 83fd1e58 ("glsl/nir: Add and use a gl_nir_link() function")
---
 src/mesa/state_tracker/st_glsl_to_nir.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp 
b/src/mesa/state_tracker/st_glsl_to_nir.cpp
index 280a778..d6a0264 100644
--- a/src/mesa/state_tracker/st_glsl_to_nir.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp
@@ -688,7 +688,7 @@ st_link_nir(struct gl_context *ctx,
 */
if (shader_program->data->spirv) {
   static const gl_nir_linker_options opts = {
- .fill_parameters = true,
+ true /*fill_parameters */
   };
   if (!gl_nir_link(ctx, shader_program, ))
  return GL_FALSE;
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH] gallivm: fix a missing argument to CreateAtomicCmpXchg

2019-08-02 Thread Neha Bhende
LGTM

Reviewed-by: Neha Bhende 

Regards,
Neha


From: Charmaine Lee 
Sent: Thursday, August 1, 2019 3:56 PM
To: mesa-dev@lists.freedesktop.org; Brian Paul; Neha Bhende; Roland 
Scheidegger; Jose Fonseca; airl...@redhat.com
Cc: Charmaine Lee
Subject: [PATCH] gallivm: fix a missing argument to CreateAtomicCmpXchg

This patch fixes a missing argument to CreateAtomicCmpXchg for older
version of LLVM.
---
 src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index 79d1029..8205d24 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -831,6 +831,7 @@ LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B, 
LLVMValueRef Ptr,
/* LLVM 3.8 doesn't have a second ordering and uses old 
SynchronizationScope enum */
return llvm::wrap(llvm::unwrap(B)->CreateAtomicCmpXchg(llvm::unwrap(Ptr), 
llvm::unwrap(Cmp),
   llvm::unwrap(New), 
mapFromLLVMOrdering(SuccessOrdering),
+  
mapFromLLVMOrdering(FailureOrdering),
   SingleThread ? 
llvm::SynchronizationScope::SingleThread : 
llvm::SynchronizationScope::CrossThread));
 }
 #endif
--
1.8.5.6

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

[Mesa-dev] [Review Request (master branch)] draw: fix memory leak introduced 7720ce32a

2019-05-16 Thread Neha Bhende
We need to free memory allocation PrimitiveOffsets in draw_gs_destroy().
This fixes memory leak found while running piglit on windows.

Fixes: 7720ce32a ("draw: add support to tgsi paths for geometry streams. (v2)")

Tested with piglit

Reviewed-by: Brian Paul 
Reviewed-by: Charmaine Lee 
---
 src/gallium/auxiliary/draw/draw_gs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/draw/draw_gs.c 
b/src/gallium/auxiliary/draw/draw_gs.c
index 6420cfbb261..c752163ee05 100644
--- a/src/gallium/auxiliary/draw/draw_gs.c
+++ b/src/gallium/auxiliary/draw/draw_gs.c
@@ -753,8 +753,10 @@ void draw_gs_destroy( struct draw_context *draw )
 {
int i;
if (draw->gs.tgsi.machine) {
-  for (i = 0; i < TGSI_MAX_VERTEX_STREAMS; i++)
+  for (i = 0; i < TGSI_MAX_VERTEX_STREAMS; i++) {
  align_free(draw->gs.tgsi.machine->Primitives[i]);
+ align_free(draw->gs.tgsi.machine->PrimitiveOffsets[i]);
+  }
   tgsi_exec_machine_destroy(draw->gs.tgsi.machine);
}
 }
-- 
2.17.1

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

Re: [Mesa-dev] [PATCH 2/2] svga: add SVGA_NO_LOGGING env var (v2)

2019-05-01 Thread Neha Bhende
For series,
Reviewed-by: Neha Bhende 

Regards,
Neha


From: Brian Paul 
Sent: Wednesday, May 1, 2019 2:55 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Charmaine Lee; Deepak Singh Rawat; Thomas Hellstrom; 
mesa-sta...@lists.freedesktop.org
Subject: [PATCH 2/2] svga: add SVGA_NO_LOGGING env var (v2)

valgrind crashes when we try to initialize host logging.  This
env var can be used to disable logging.

v2: rebase onto "svga: move host logging to winsys".

Cc: mesa-sta...@lists.freedesktop.org
---
 docs/envvars.html  |  3 +++
 src/gallium/drivers/svga/svga_screen.c | 16 +++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/docs/envvars.html b/docs/envvars.html
index c9733e6..43d3a6c 100644
--- a/docs/envvars.html
+++ b/docs/envvars.html
@@ -338,6 +338,9 @@ See src/mesa/state_tracker/st_debug.c for other options.
 for details.
 SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file,
 such as the OpenGL program's name and command line arguments.
+SVGA_NO_LOGGING - if set, disables logging to the vmware.log file.
+This is useful when using Valgrind because it otherwise crashes when
+initializing the host log feature.
 See the driver code for other, lesser-used variables.
 

diff --git a/src/gallium/drivers/svga/svga_screen.c 
b/src/gallium/drivers/svga/svga_screen.c
index 664b9bf..f747ff7 100644
--- a/src/gallium/drivers/svga/svga_screen.c
+++ b/src/gallium/drivers/svga/svga_screen.c
@@ -917,6 +917,16 @@ init_logging(struct pipe_screen *screen)
 }


+/**
+ * no-op logging function to use when SVGA_NO_LOGGING is set.
+ */
+static void
+nop_host_log(struct svga_winsys_screen *sws, const char *message)
+{
+   /* nothing */
+}
+
+
 static void
 svga_destroy_screen( struct pipe_screen *screen )
 {
@@ -1134,7 +1144,11 @@ svga_screen_create(struct svga_winsys_screen *sws)

svga_screen_cache_init(svgascreen);

-   init_logging(screen);
+   if (debug_get_bool_option("SVGA_NO_LOGGING", FALSE) == TRUE) {
+  svgascreen->sws->host_log = nop_host_log;
+   } else {
+  init_logging(screen);
+   }

return screen;
 error2:
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH] glsl: work around MinGW 7.x compiler bug

2019-05-01 Thread Neha Bhende
LGTM

Reviewed-by: Neha Bhende 

Regards,
Neha


From: Brian Paul 
Sent: Wednesday, May 1, 2019 1:28 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Jose Fonseca; Charmaine Lee
Subject: [PATCH] glsl: work around MinGW 7.x compiler bug

I'm not sure what triggered this, but building with
scons platform=windows toolchain=crossmingw machine=x86 build=profile
with MinGW g++ 7.3 or 7.4 causes an internal compiler error.

We can work around it by forcing -O1 optimization.
---
 src/compiler/glsl/builtin_variables.cpp | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/src/compiler/glsl/builtin_variables.cpp 
b/src/compiler/glsl/builtin_variables.cpp
index 17ee80c..1b9963a 100644
--- a/src/compiler/glsl/builtin_variables.cpp
+++ b/src/compiler/glsl/builtin_variables.cpp
@@ -21,6 +21,21 @@
  * DEALINGS IN THE SOFTWARE.
  */

+
+/**
+ * Building this file with MinGW g++ 7.3 or 7.4 with:
+ *   scons platform=windows toolchain=crossmingw machine=x86 build=profile
+ * triggers an internal compiler error.
+ * Overriding the optimization level to -O1 works around the issue.
+ * MinGW 5.3.1 does not seem to have the bug, neither does 8.3.  So for now
+ * we're simply testing for version 7.x here.
+ */
+#if defined(__MINGW32__) && __GNUC__ == 7
+#warning "disabling optimizations for this file to work around compiler bug in 
MiGW gcc 7.x"
+#pragma GCC optimize("O1")
+#endif
+
+
 #include "ir.h"
 #include "ir_builder.h"
 #include "linker.h"
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH] llvmpipe: init some vars to NULL to silence MinGW compiler warnings

2019-05-01 Thread Neha Bhende
LGTM.

Reviewed-by: Neha Bhende 

Regards,
Neha


From: mesa-dev  on behalf of Brian Paul 

Sent: Wednesday, May 1, 2019 9:48 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [Mesa-dev] [PATCH] llvmpipe: init some vars to NULL to silence MinGW 
compiler warnings

---
 src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c 
b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c
index 9561c34..90b2be9 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c
@@ -2191,7 +2191,7 @@ lp_build_fetch_s3tc_rgba_aos(struct gallivm_state 
*gallivm,
   rgba = LLVMGetUndef(i128_vectype);

   for (count = 0; count < n / 4; count++) {
- LLVMValueRef colors, codewords, alpha_lo, alpha_hi;
+ LLVMValueRef colors, codewords, alpha_lo = NULL, alpha_hi = NULL;

  i4 = lp_build_extract_range(gallivm, i, count * 4, 4);
  j4 = lp_build_extract_range(gallivm, j, count * 4, 4);
@@ -2230,7 +2230,7 @@ lp_build_fetch_s3tc_rgba_aos(struct gallivm_state 
*gallivm,
   rgba = LLVMBuildBitCast(builder, rgba, i8_vectype, "");
}
else {
-  LLVMValueRef colors, codewords, alpha_lo, alpha_hi;
+  LLVMValueRef colors, codewords, alpha_lo = NULL, alpha_hi = NULL;

   lp_build_gather_s3tc(gallivm, n, format_desc, , ,
_lo, _hi, base_ptr, offset);
--
1.8.5.6

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fmesa-devdata=02%7C01%7Cbhenden%40vmware.com%7C7ecdd0d590fb4d22d32408d6ce54f538%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C1%7C636923261641738945sdata=kw%2F%2BkO%2FLSjMh%2FcW8eHicq2VSHJ2wRdpjHsPtWg4rc10%3Dreserved=0
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] svga: add SVGA_NO_LOGGING env var

2019-05-01 Thread Neha Bhende
Looks reasonable to me.

Reviewed-by: Neha Bhende 

Regards,
Neha


From: mesa-dev  on behalf of Brian Paul 

Sent: Wednesday, May 1, 2019 9:48 AM
To: mesa-dev@lists.freedesktop.org
Cc: mesa-sta...@lists.freedesktop.org; Neha Bhende; Deepak Singh Rawat
Subject: [Mesa-dev] [PATCH] svga: add SVGA_NO_LOGGING env var

valgrind crashes when we try to initialize host logging.  This
env var can be used to disable logging.

Cc: mesa-sta...@lists.freedesktop.org
---
 docs/envvars.html  | 3 +++
 src/gallium/drivers/svga/svga_screen.c | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/docs/envvars.html b/docs/envvars.html
index c9733e6..43d3a6c 100644
--- a/docs/envvars.html
+++ b/docs/envvars.html
@@ -338,6 +338,9 @@ See src/mesa/state_tracker/st_debug.c for other options.
 for details.
 SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file,
 such as the OpenGL program's name and command line arguments.
+SVGA_NO_LOGGING - if set, disables logging to the vmware.log file.
+This is useful when using Valgrind because it otherwise crashes when
+initializing the host log feature.
 See the driver code for other, lesser-used variables.
 

diff --git a/src/gallium/drivers/svga/svga_screen.c 
b/src/gallium/drivers/svga/svga_screen.c
index 6cb5a14..8158950 100644
--- a/src/gallium/drivers/svga/svga_screen.c
+++ b/src/gallium/drivers/svga/svga_screen.c
@@ -1134,7 +1134,9 @@ svga_screen_create(struct svga_winsys_screen *sws)

svga_screen_cache_init(svgascreen);

-   init_logging(screen);
+   if (debug_get_bool_option("SVGA_NO_LOGGING", FALSE) == FALSE) {
+  init_logging(screen);
+   }

return screen;
 error2:
--
1.8.5.6

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fmesa-devdata=02%7C01%7Cbhenden%40vmware.com%7Cfd9f3e778e56480cc64708d6ce54d0f9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C1%7C636923261021926972sdata=c3YZTbcPzMc5HYTO%2FB%2FGWrztCwBXhKBnB21XUfLg0n0%3Dreserved=0
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] st/mesa: fix texture deletion context mix-up issues (v2)

2019-03-24 Thread Neha Bhende
Looks good to me.

Reviewed-by: Neha Bhende 

Regards,
Neha


From: mesa-dev  on behalf of Brian Paul 

Sent: Friday, March 22, 2019 12:51 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [Mesa-dev] [PATCH] st/mesa: fix texture deletion context mix-up issues 
(v2)

When we destroy a context, we need to temporarily make that context
the current one for the thread.

That's because during context tear-down we make many calls to
_mesa_reference_texobj(, NULL).  Note there's no context
parameter.  If the texture's refcount goes to zero and we need to
delete it, we use the thread's current context.  But if that context
isn't the context we're tearing down, we get into trouble when
deallocating sampler views.  See patch 593e36f956 ("st/mesa:
implement "zombie" sampler views (v2)") for background information.

Also, we need to release any sampler views attached to the fallback
textures.

Fixes a crash on exit with a glretrace of the Nobel Clinician
application.

v2: at end of st_destroy_context(), check if save_ctx == ctx and
unbind the context if so.
---
 src/mesa/state_tracker/st_context.c | 51 -
 1 file changed, 39 insertions(+), 12 deletions(-)

diff --git a/src/mesa/state_tracker/st_context.c 
b/src/mesa/state_tracker/st_context.c
index f037384..09d467a 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -917,15 +917,39 @@ st_destroy_context(struct st_context *st)
 {
struct gl_context *ctx = st->ctx;
struct st_framebuffer *stfb, *next;
+   struct gl_framebuffer *save_drawbuffer;
+   struct gl_framebuffer *save_readbuffer;
+
+   /* Save the current context and draw/read buffers*/
+   GET_CURRENT_CONTEXT(save_ctx);
+   if (save_ctx) {
+  save_drawbuffer = save_ctx->WinSysDrawBuffer;
+  save_readbuffer = save_ctx->WinSysReadBuffer;
+   } else {
+  save_drawbuffer = save_readbuffer = NULL;
+   }

-   GET_CURRENT_CONTEXT(curctx);
+   /*
+* We need to bind the context we're deleting so that
+* _mesa_reference_texobj_() uses this context when deleting textures.
+* Similarly for framebuffer objects, etc.
+*/
+   _mesa_make_current(ctx, NULL, NULL);

-   if (curctx == NULL) {
-  /* No current context, but we need one to release
-   * renderbuffer surface when we release framebuffer.
-   * So temporarily bind the context.
-   */
-  _mesa_make_current(ctx, NULL, NULL);
+   /* This must be called first so that glthread has a chance to finish */
+   _mesa_glthread_destroy(ctx);
+
+   _mesa_HashWalk(ctx->Shared->TexObjects, destroy_tex_sampler_cb, st);
+
+   /* For the fallback textures, free any sampler views belonging to this
+* context.
+*/
+   for (unsigned i = 0; i < NUM_TEXTURE_TARGETS; i++) {
+  struct st_texture_object *stObj =
+ st_texture_object(ctx->Shared->FallbackTex[i]);
+  if (stObj) {
+ st_texture_release_context_sampler_view(st, stObj);
+  }
}

st_context_free_zombie_objects(st);
@@ -933,11 +957,6 @@ st_destroy_context(struct st_context *st)
mtx_destroy(>zombie_sampler_views.mutex);
mtx_destroy(>zombie_shaders.mutex);

-   /* This must be called first so that glthread has a chance to finish */
-   _mesa_glthread_destroy(ctx);
-
-   _mesa_HashWalk(ctx->Shared->TexObjects, destroy_tex_sampler_cb, st);
-
st_reference_fragprog(st, >fp, NULL);
st_reference_prog(st, >gp, NULL);
st_reference_vertprog(st, >vp, NULL);
@@ -965,4 +984,12 @@ st_destroy_context(struct st_context *st)
st = NULL;

free(ctx);
+
+   if (save_ctx == ctx) {
+  /* unbind the context we just deleted */
+  _mesa_make_current(NULL, NULL, NULL);
+   } else {
+  /* Restore the current context and draw/read buffers (may be NULL) */
+  _mesa_make_current(save_ctx, save_drawbuffer, save_readbuffer);
+   }
 }
--
1.8.5.6

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fmesa-devdata=02%7C01%7Cbhenden%40vmware.com%7Ce45f81c0931c4632b08f08d6af001248%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C63612186127578sdata=tJMl2feeW7EsZQcvpFWKvifdAAF7GBY43%2FYTdUAXWL8%3Dreserved=0
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] st/mesa: fix texture deletion context mix-up issues

2019-03-21 Thread Neha Bhende
Thanks for the fix!

Reviewed-by: Neha Bhende 

Regards,
Neha


From: Brian Paul 
Sent: Thursday, March 21, 2019 6:19 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [PATCH] st/mesa: fix texture deletion context mix-up issues

When we destroy a context, we need to temporarily make that context
the current one for the thread.

That's because during context tear-down we make many calls to
_mesa_reference_texobj(, NULL).  Note there's no context
parameter.  If the texture's refcount goes to zero and we need to
delete it, we use the thread's current context.  But if that context
isn't the context we're tearing down, we get into trouble when
deallocating sampler views.  See patch 593e36f956 ("st/mesa:
implement "zombie" sampler views (v2)") for background information.

Also, we need to release any sampler views attached to the fallback
textures.

Fixes a crash on exit with a glretrace of the Nobel Clinician
application.
---
 src/mesa/state_tracker/st_context.c | 46 +++--
 1 file changed, 34 insertions(+), 12 deletions(-)

diff --git a/src/mesa/state_tracker/st_context.c 
b/src/mesa/state_tracker/st_context.c
index f037384..9b23d75 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -917,15 +917,39 @@ st_destroy_context(struct st_context *st)
 {
struct gl_context *ctx = st->ctx;
struct st_framebuffer *stfb, *next;
+   struct gl_framebuffer *save_drawbuffer;
+   struct gl_framebuffer *save_readbuffer;
+
+   /* Save the current context and draw/read buffers*/
+   GET_CURRENT_CONTEXT(save_ctx);
+   if (save_ctx) {
+  save_drawbuffer = save_ctx->WinSysDrawBuffer;
+  save_readbuffer = save_ctx->WinSysReadBuffer;
+   } else {
+  save_drawbuffer = save_readbuffer = NULL;
+   }

-   GET_CURRENT_CONTEXT(curctx);
+   /*
+* We need to bind the context we're deleting so that
+* _mesa_reference_texobj_() uses this context when deleting textures.
+* Similarly for framebuffer objects, etc.
+*/
+   _mesa_make_current(ctx, NULL, NULL);

-   if (curctx == NULL) {
-  /* No current context, but we need one to release
-   * renderbuffer surface when we release framebuffer.
-   * So temporarily bind the context.
-   */
-  _mesa_make_current(ctx, NULL, NULL);
+   /* This must be called first so that glthread has a chance to finish */
+   _mesa_glthread_destroy(ctx);
+
+   _mesa_HashWalk(ctx->Shared->TexObjects, destroy_tex_sampler_cb, st);
+
+   /* For the fallback textures, free any sampler views belonging to this
+* context.
+*/
+   for (unsigned i = 0; i < NUM_TEXTURE_TARGETS; i++) {
+  struct st_texture_object *stObj =
+ st_texture_object(ctx->Shared->FallbackTex[i]);
+  if (stObj) {
+ st_texture_release_context_sampler_view(st, stObj);
+  }
}

st_context_free_zombie_objects(st);
@@ -933,11 +957,6 @@ st_destroy_context(struct st_context *st)
mtx_destroy(>zombie_sampler_views.mutex);
mtx_destroy(>zombie_shaders.mutex);

-   /* This must be called first so that glthread has a chance to finish */
-   _mesa_glthread_destroy(ctx);
-
-   _mesa_HashWalk(ctx->Shared->TexObjects, destroy_tex_sampler_cb, st);
-
st_reference_fragprog(st, >fp, NULL);
st_reference_prog(st, >gp, NULL);
st_reference_vertprog(st, >vp, NULL);
@@ -965,4 +984,7 @@ st_destroy_context(struct st_context *st)
st = NULL;

free(ctx);
+
+   /* Restore the current context and draw/read buffers */
+   _mesa_make_current(save_ctx, save_drawbuffer, save_readbuffer);
 }
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH 8/8] gallium/util: remove pipe_sampler_view_release()

2019-03-14 Thread Neha Bhende
Looks great!

For series,
Reviewed-by: Neha Bhende 

Regards,
Neha


From: Brian Paul 
Sent: Thursday, March 14, 2019 12:37 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Jose Fonseca; Roland Scheidegger; Mathias Fröhlich
Subject: [PATCH 8/8] gallium/util: remove pipe_sampler_view_release()

It's no longer used.
---
 src/gallium/auxiliary/util/u_inlines.h | 20 
 1 file changed, 20 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_inlines.h 
b/src/gallium/auxiliary/util/u_inlines.h
index fa1e920..567d3d0 100644
--- a/src/gallium/auxiliary/util/u_inlines.h
+++ b/src/gallium/auxiliary/util/u_inlines.h
@@ -192,26 +192,6 @@ pipe_sampler_view_reference(struct pipe_sampler_view **dst,
*dst = src;
 }

-/**
- * Similar to pipe_sampler_view_reference() but always set the pointer to
- * NULL and pass in the current context explicitly.
- *
- * If *ptr is non-NULL, it may refer to a view that was created in a different
- * context (however, that context must still be alive).
- */
-static inline void
-pipe_sampler_view_release(struct pipe_context *ctx,
-  struct pipe_sampler_view **ptr)
-{
-   struct pipe_sampler_view *old_view = *ptr;
-
-   if (pipe_reference_described(_view->reference, NULL,
-(debug_reference_descriptor)debug_describe_sampler_view)) {
-  ctx->sampler_view_destroy(ctx, old_view);
-   }
-   *ptr = NULL;
-}
-
 static inline void
 pipe_so_target_reference(struct pipe_stream_output_target **dst,
  struct pipe_stream_output_target *src)
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH] st/mesa: init hash keys with memset(), not designated initializers

2019-03-08 Thread Neha Bhende
Reviewed-by: Neha Bhende 

Regards,
Neha


From: mesa-dev  on behalf of Brian Paul 

Sent: Friday, March 8, 2019 9:14 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [Mesa-dev] [PATCH] st/mesa: init hash keys with memset(), not 
designated initializers

Since the compiler may not zero-out padding in the object.
Add a couple comments about this to prevent misunderstandings in
the future.

Fixes: 67d96816ff5 ("st/mesa: move, clean-up shader variant key decls/inits")
---
 src/mesa/state_tracker/st_atom_shader.c |  9 +++--
 src/mesa/state_tracker/st_program.c | 13 ++---
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_shader.c 
b/src/mesa/state_tracker/st_atom_shader.c
index ac7a1a5..a4475e2 100644
--- a/src/mesa/state_tracker/st_atom_shader.c
+++ b/src/mesa/state_tracker/st_atom_shader.c
@@ -112,7 +112,10 @@ st_update_fp( struct st_context *st )
!stfp->variants->key.bitmap) {
   shader = stfp->variants->driver_shader;
} else {
-  struct st_fp_variant_key key = {0};
+  struct st_fp_variant_key key;
+
+  /* use memset, not an initializer to be sure all memory is zeroed */
+  memset(, 0, sizeof(key));

   key.st = st->has_shareable_shaders ? NULL : st;

@@ -168,7 +171,9 @@ st_update_vp( struct st_context *st )
stvp->variants->key.passthrough_edgeflags == st->vertdata_edgeflags) {
   st->vp_variant = stvp->variants;
} else {
-  struct st_vp_variant_key key = {0};
+  struct st_vp_variant_key key;
+
+  memset(, 0, sizeof(key));

   key.st = st->has_shareable_shaders ? NULL : st;

diff --git a/src/mesa/state_tracker/st_program.c 
b/src/mesa/state_tracker/st_program.c
index 6d669a9..fe03070 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1807,7 +1807,10 @@ st_get_cp_variant(struct st_context *st,
 {
struct pipe_context *pipe = st->pipe;
struct st_basic_variant *v;
-   struct st_basic_variant_key key = {0};
+   struct st_basic_variant_key key;
+
+   /* use memset, not an initializer to be sure all memory is zeroed */
+   memset(, 0, sizeof(key));

key.st = st->has_shareable_shaders ? NULL : st;

@@ -2030,7 +2033,9 @@ st_precompile_shader_variant(struct st_context *st,
switch (prog->Target) {
case GL_VERTEX_PROGRAM_ARB: {
   struct st_vertex_program *p = (struct st_vertex_program *)prog;
-  struct st_vp_variant_key key = {0};
+  struct st_vp_variant_key key;
+
+  memset(, 0, sizeof(key));

   key.st = st->has_shareable_shaders ? NULL : st;
   st_get_vp_variant(st, p, );
@@ -2057,7 +2062,9 @@ st_precompile_shader_variant(struct st_context *st,

case GL_FRAGMENT_PROGRAM_ARB: {
   struct st_fragment_program *p = (struct st_fragment_program *)prog;
-  struct st_fp_variant_key key = {0};
+  struct st_fp_variant_key key;
+
+  memset(, 0, sizeof(key));

   key.st = st->has_shareable_shaders ? NULL : st;
   st_get_fp_variant(st, p, );
--
1.8.5.6

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fmesa-devdata=02%7C01%7Cbhenden%40vmware.com%7C773d52000a58466ac0d508d6a3e98df6%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C636876620836813700sdata=pyvSVyPLzF8JXaiMptIRwvddQX2Hh7rm%2FAV%2BivL%2FOOE%3Dreserved=0
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] svga: remove SVGA_RELOC_READ flag in SVGA3D_BindGBSurface()

2019-03-08 Thread Neha Bhende
Reviewed-by: Neha Bhende 

Regards,
Neha


From: mesa-dev  on behalf of Brian Paul 

Sent: Thursday, March 7, 2019 6:45 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Deepak Singh Rawat
Subject: [Mesa-dev] [PATCH] svga: remove SVGA_RELOC_READ flag in 
SVGA3D_BindGBSurface()

This fixes a rendering issue where UBO updates aren't always picked
up by drawing calls.  This issue effected the Webots robotics
simulator.  VMware bug 2175527.

Testing Done: Webots replay, piglit, misc Linux games
---
 src/gallium/drivers/svga/svga_cmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/svga/svga_cmd.c 
b/src/gallium/drivers/svga/svga_cmd.c
index 5557d20..6577c83 100644
--- a/src/gallium/drivers/svga/svga_cmd.c
+++ b/src/gallium/drivers/svga/svga_cmd.c
@@ -1693,7 +1693,7 @@ SVGA3D_BindGBSurface(struct svga_winsys_context *swc,
   return PIPE_ERROR_OUT_OF_MEMORY;

swc->surface_relocation(swc, >sid, >mobid, surface,
-   SVGA_RELOC_READ | SVGA_RELOC_INTERNAL);
+   SVGA_RELOC_READ);

swc->commit(swc);

--
1.8.5.6

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fmesa-devdata=02%7C01%7Cbhenden%40vmware.com%7Cf11994e465a1400ada3708d6a37020df%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C636876099321425712sdata=CDWeq6zQkh%2FC1c1l5Amgf0DgyYUVYCdBHUrw0a6GWUA%3Dreserved=0
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 5/5] st/mesa: minor refactoring of texture/sampler delete code

2019-03-08 Thread Neha Bhende
Reviewed-by: Neha Bhende 

Regards,
Neha


From: Brian Paul 
Sent: Friday, March 8, 2019 7:52 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [PATCH 5/5] st/mesa: minor refactoring of texture/sampler delete code

Rename st_texture_free_sampler_views() to
st_delete_texture_sampler_views() to align with
st_DeleteTextureObject(), its only caller.

Move the call to st_texture_release_all_sampler_views() from
st_DeleteTextureObject() to st_delete_texture_sampler_views()
so all the sampler view clean-up code is in one place.
---
 src/mesa/state_tracker/st_cb_texture.c   |  3 +--
 src/mesa/state_tracker/st_sampler_view.c | 11 ---
 src/mesa/state_tracker/st_sampler_view.h |  3 ++-
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_texture.c 
b/src/mesa/state_tracker/st_cb_texture.c
index 47d0612..2caf61e 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -187,8 +187,7 @@ st_DeleteTextureObject(struct gl_context *ctx,
struct st_texture_object *stObj = st_texture_object(texObj);

pipe_resource_reference(>pt, NULL);
-   st_texture_release_all_sampler_views(st, stObj);
-   st_texture_free_sampler_views(stObj);
+   st_delete_texture_sampler_views(st, stObj);
simple_mtx_destroy(>validate_mutex);
_mesa_delete_texture_object(ctx, texObj);
 }
diff --git a/src/mesa/state_tracker/st_sampler_view.c 
b/src/mesa/state_tracker/st_sampler_view.c
index 17c209c..e4eaf39 100644
--- a/src/mesa/state_tracker/st_sampler_view.c
+++ b/src/mesa/state_tracker/st_sampler_view.c
@@ -231,15 +231,20 @@ st_texture_release_all_sampler_views(struct st_context 
*st,


 /*
- * Free the texture's st_sampler_views objects.  This should be called
- * after st_texture_release_all_sampler_views().
+ * Delete the texture's sampler views and st_sampler_views containers.
+ * This is to be called just before a texture is deleted.
  */
 void
-st_texture_free_sampler_views(struct st_texture_object *stObj)
+st_delete_texture_sampler_views(struct st_context *st,
+struct st_texture_object *stObj)
 {
+   st_texture_release_all_sampler_views(st, stObj);
+
+   /* Free the container of the current per-context sampler views */
free(stObj->sampler_views);
stObj->sampler_views = NULL;

+   /* Free old sampler view containers */
while (stObj->sampler_views_old) {
   struct st_sampler_views *views = stObj->sampler_views_old;
   stObj->sampler_views_old = views->next;
diff --git a/src/mesa/state_tracker/st_sampler_view.h 
b/src/mesa/state_tracker/st_sampler_view.h
index d7a4c0d..1bd664d 100644
--- a/src/mesa/state_tracker/st_sampler_view.h
+++ b/src/mesa/state_tracker/st_sampler_view.h
@@ -66,7 +66,8 @@ st_texture_release_all_sampler_views(struct st_context *st,
  struct st_texture_object *stObj);

 void
-st_texture_free_sampler_views(struct st_texture_object *stObj);
+st_delete_texture_sampler_views(struct st_context *st,
+struct st_texture_object *stObj);

 const struct st_sampler_view *
 st_texture_get_current_sampler_view(const struct st_context *st,
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH] svga: refactor draw_vgpu10() function

2019-03-07 Thread Neha Bhende
Looks good to me.

Just one nit pick,
In definition of validate_index_buffer, extra space is required in argument 
list.

Reviewed-by: Neha Bhende 

Regards,

Neha

Regards,
Neha


From: Brian Paul 
Sent: Thursday, March 7, 2019 3:23 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [PATCH] svga: refactor draw_vgpu10() function

The draw_vgpu10() function was huge.  Move the code for preparing the
vertex buffers and the index buffer into separate functions.
---
 src/gallium/drivers/svga/svga_draw.c | 246 ---
 1 file changed, 141 insertions(+), 105 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_draw.c 
b/src/gallium/drivers/svga/svga_draw.c
index 649bc22..a358170 100644
--- a/src/gallium/drivers/svga/svga_draw.c
+++ b/src/gallium/drivers/svga/svga_draw.c
@@ -507,62 +507,25 @@ vertex_buffers_equal(unsigned count,
 }


+/*
+ * Prepare the vertex buffers for a drawing command.
+ */
 static enum pipe_error
-draw_vgpu10(struct svga_hwtnl *hwtnl,
-const SVGA3dPrimitiveRange *range,
-unsigned vcount,
-struct pipe_resource *ib,
-unsigned start_instance, unsigned instance_count)
+validate_vertex_buffers(struct svga_hwtnl *hwtnl)
 {
struct svga_context *svga = hwtnl->svga;
struct pipe_resource *vbuffers[SVGA3D_INPUTREG_MAX];
struct svga_winsys_surface *vbuffer_handles[SVGA3D_INPUTREG_MAX];
-   struct svga_winsys_surface *ib_handle;
const unsigned vbuf_count = hwtnl->cmd.vbuf_count;
int last_vbuf = -1;
-   enum pipe_error ret;
unsigned i;

assert(svga_have_vgpu10(svga));
-   assert(hwtnl->cmd.prim_count == 0);
-
-   /* We need to reemit all the current resource bindings along with the Draw
-* command to be sure that the referenced resources are available for the
-* Draw command, just in case the surfaces associated with the resources
-* are paged out.
-*/
-   if (svga->rebind.val) {
-  ret = svga_rebind_framebuffer_bindings(svga);
-  if (ret != PIPE_OK)
- return ret;
-
-  ret = svga_rebind_shaders(svga);
-  if (ret != PIPE_OK)
- return ret;
-
-  /* Rebind stream output targets */
-  ret = svga_rebind_stream_output_targets(svga);
-  if (ret != PIPE_OK)
- return ret;
-
-  /* No need to explicitly rebind index buffer and vertex buffers here.
-   * Even if the same index buffer or vertex buffers are referenced for 
this
-   * draw and we skip emitting the redundant set command, we will still
-   * reference the associated resources.
-   */
-   }
-
-   ret = validate_sampler_resources(svga);
-   if (ret != PIPE_OK)
-  return ret;
-
-   ret = validate_constant_buffers(svga);
-   if (ret != PIPE_OK)
-  return ret;

/* Get handle for each referenced vertex buffer */
for (i = 0; i < vbuf_count; i++) {
-  struct svga_buffer *sbuf = 
svga_buffer(hwtnl->cmd.vbufs[i].buffer.resource);
+  struct svga_buffer *sbuf =
+ svga_buffer(hwtnl->cmd.vbufs[i].buffer.resource);

   if (sbuf) {
  vbuffer_handles[i] = svga_buffer_handle(svga, >b.b,
@@ -584,25 +547,11 @@ draw_vgpu10(struct svga_hwtnl *hwtnl,
   vbuffer_handles[i] = NULL;
}

-   /* Get handle for the index buffer */
-   if (ib) {
-  struct svga_buffer *sbuf = svga_buffer(ib);
-
-  ib_handle = svga_buffer_handle(svga, ib, PIPE_BIND_INDEX_BUFFER);
-  if (!ib_handle)
- return PIPE_ERROR_OUT_OF_MEMORY;
-
-  assert(sbuf->key.flags & SVGA3D_SURFACE_BIND_INDEX_BUFFER);
-  (void) sbuf; /* silence unused var warning */
-   }
-   else {
-  ib_handle = NULL;
-   }
-
/* setup vertex attribute input layout */
if (svga->state.hw_draw.layout_id != hwtnl->cmd.vdecl_layout_id) {
-  ret = SVGA3D_vgpu10_SetInputLayout(svga->swc,
- hwtnl->cmd.vdecl_layout_id);
+  enum pipe_error ret =
+ SVGA3D_vgpu10_SetInputLayout(svga->swc,
+  hwtnl->cmd.vdecl_layout_id);
   if (ret != PIPE_OK)
  return ret;

@@ -658,14 +607,13 @@ draw_vgpu10(struct svga_hwtnl *hwtnl,
  * corresponding entries in the device's vertex buffer list.
  */
 for (i = 0; i < num_vbuffers; i++) {
-   boolean emit;
-
-   emit = vertex_buffers_equal(1,
-   _attrs[i],
-   [i],
-   
>state.hw_draw.vbuffer_attrs[i],
-   >state.hw_draw.vbuffers[i]);
-
+   boolean emit =
+  vertex_buffers_equal(1,
+   _attrs[i],
+   [i],
+   >state.hw_draw.vbuffer_attrs[i],
+   

Re: [Mesa-dev] [PATCH] st/mesa: move, clean-up shader variant key decls/inits

2019-03-07 Thread Neha Bhende
Reviewed-by: Neha Bhende 


Regards,

Neha


From: Brian Paul 
Sent: Thursday, March 7, 2019 8:20 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [PATCH] st/mesa: move, clean-up shader variant key decls/inits

Move the variant key declarations inside the scope they're used.
Use designated initializers instead of memset() calls.
---
 src/mesa/state_tracker/st_atom_shader.c | 8 
 src/mesa/state_tracker/st_program.c | 9 +++--
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_shader.c 
b/src/mesa/state_tracker/st_atom_shader.c
index c6faa3f..ac7a1a5 100644
--- a/src/mesa/state_tracker/st_atom_shader.c
+++ b/src/mesa/state_tracker/st_atom_shader.c
@@ -97,7 +97,6 @@ void
 st_update_fp( struct st_context *st )
 {
struct st_fragment_program *stfp;
-   struct st_fp_variant_key key;

assert(st->ctx->FragmentProgram._Current);
stfp = st_fragment_program(st->ctx->FragmentProgram._Current);
@@ -113,7 +112,8 @@ st_update_fp( struct st_context *st )
!stfp->variants->key.bitmap) {
   shader = stfp->variants->driver_shader;
} else {
-  memset(, 0, sizeof(key));
+  struct st_fp_variant_key key = {0};
+
   key.st = st->has_shareable_shaders ? NULL : st;

   /* _NEW_FRAG_CLAMP */
@@ -155,7 +155,6 @@ void
 st_update_vp( struct st_context *st )
 {
struct st_vertex_program *stvp;
-   struct st_vp_variant_key key;

/* find active shader and params -- Should be covered by
 * ST_NEW_VERTEX_PROGRAM
@@ -169,7 +168,8 @@ st_update_vp( struct st_context *st )
stvp->variants->key.passthrough_edgeflags == st->vertdata_edgeflags) {
   st->vp_variant = stvp->variants;
} else {
-  memset(, 0, sizeof key);
+  struct st_vp_variant_key key = {0};
+
   key.st = st->has_shareable_shaders ? NULL : st;

   /* When this is true, we will add an extra input to the vertex
diff --git a/src/mesa/state_tracker/st_program.c 
b/src/mesa/state_tracker/st_program.c
index c2daa4d..5e43a2e 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1772,9 +1772,8 @@ st_get_cp_variant(struct st_context *st,
 {
struct pipe_context *pipe = st->pipe;
struct st_basic_variant *v;
-   struct st_basic_variant_key key;
+   struct st_basic_variant_key key = {0};

-   memset(, 0, sizeof(key));
key.st = st->has_shareable_shaders ? NULL : st;

/* Search for existing variant */
@@ -1996,9 +1995,8 @@ st_precompile_shader_variant(struct st_context *st,
switch (prog->Target) {
case GL_VERTEX_PROGRAM_ARB: {
   struct st_vertex_program *p = (struct st_vertex_program *)prog;
-  struct st_vp_variant_key key;
+  struct st_vp_variant_key key = {0};

-  memset(, 0, sizeof(key));
   key.st = st->has_shareable_shaders ? NULL : st;
   st_get_vp_variant(st, p, );
   break;
@@ -2024,9 +2022,8 @@ st_precompile_shader_variant(struct st_context *st,

case GL_FRAGMENT_PROGRAM_ARB: {
   struct st_fragment_program *p = (struct st_fragment_program *)prog;
-  struct st_fp_variant_key key;
+  struct st_fp_variant_key key = {0};

-  memset(, 0, sizeof(key));
   key.st = st->has_shareable_shaders ? NULL : st;
   st_get_fp_variant(st, p, );
   break;
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH 3/3] winsys/svga: use new pb_usage_flags enum type

2019-03-05 Thread Neha Bhende
For the series,

Reviewed-by: Neha Bhende 


Regards,

Neha


From: Brian Paul 
Sent: Tuesday, March 5, 2019 7:48 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Deepak Singh Rawat; Thomas Hellstrom
Subject: [PATCH 3/3] winsys/svga: use new pb_usage_flags enum type

And add a comment that we're implicitly converting PIPE_TRANSFER_
flags to PB_USAGE_ flags in one place.  And statically assert that
the enum values match.
---
 src/gallium/winsys/svga/drm/vmw_buffer.c  | 27 +++
 src/gallium/winsys/svga/drm/vmw_buffer.h  |  1 +
 src/gallium/winsys/svga/drm/vmw_context.c |  4 ++--
 3 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/src/gallium/winsys/svga/drm/vmw_buffer.c 
b/src/gallium/winsys/svga/drm/vmw_buffer.c
index 3ac80c7..91b5b25 100644
--- a/src/gallium/winsys/svga/drm/vmw_buffer.c
+++ b/src/gallium/winsys/svga/drm/vmw_buffer.c
@@ -90,6 +90,11 @@ static inline struct vmw_gmr_bufmgr *
 vmw_gmr_bufmgr(struct pb_manager *mgr)
 {
assert(mgr);
+
+   /* Make sure our extra flags don't collide with pipebuffer's flags */
+   STATIC_ASSERT((VMW_BUFFER_USAGE_SHARED & PB_USAGE_ALL) == 0);
+   STATIC_ASSERT((VMW_BUFFER_USAGE_SYNC & PB_USAGE_ALL) == 0);
+
return (struct vmw_gmr_bufmgr *)mgr;
 }

@@ -109,7 +114,7 @@ vmw_gmr_buffer_destroy(struct pb_buffer *_buf)

 static void *
 vmw_gmr_buffer_map(struct pb_buffer *_buf,
-   unsigned flags,
+   enum pb_usage_flags flags,
void *flush_ctx)
 {
struct vmw_gmr_buffer *buf = vmw_gmr_buffer(_buf);
@@ -140,7 +145,7 @@ static void
 vmw_gmr_buffer_unmap(struct pb_buffer *_buf)
 {
struct vmw_gmr_buffer *buf = vmw_gmr_buffer(_buf);
-   unsigned flags = buf->map_flags;
+   enum pb_usage_flags flags = buf->map_flags;

if ((_buf->usage & VMW_BUFFER_USAGE_SYNC) &&
!(flags & PB_USAGE_UNSYNCHRONIZED)) {
@@ -164,7 +169,7 @@ vmw_gmr_buffer_get_base_buffer(struct pb_buffer *buf,
 static enum pipe_error
 vmw_gmr_buffer_validate( struct pb_buffer *_buf,
  struct pb_validate *vl,
- unsigned flags )
+ enum pb_usage_flags flags )
 {
/* Always pinned */
return PIPE_OK;
@@ -338,7 +343,7 @@ vmw_svga_winsys_buffer_destroy(struct svga_winsys_screen 
*sws,
 void *
 vmw_svga_winsys_buffer_map(struct svga_winsys_screen *sws,
struct svga_winsys_buffer *buf,
-   unsigned flags)
+   enum pipe_transfer_usage flags)
 {
void *map;

@@ -346,6 +351,20 @@ vmw_svga_winsys_buffer_map(struct svga_winsys_screen *sws,
if (flags & PIPE_TRANSFER_UNSYNCHRONIZED)
   flags &= ~PIPE_TRANSFER_DONTBLOCK;

+   /* NOTE: we're passing PIPE_TRANSFER_x flags instead of
+* PB_USAGE_x flags here.  We should probably fix that.
+*/
+   STATIC_ASSERT((unsigned) PB_USAGE_CPU_READ ==
+ (unsigned) PIPE_TRANSFER_READ);
+   STATIC_ASSERT((unsigned) PB_USAGE_CPU_WRITE ==
+ (unsigned) PIPE_TRANSFER_WRITE);
+   STATIC_ASSERT((unsigned) PB_USAGE_GPU_READ ==
+ (unsigned) PIPE_TRANSFER_MAP_DIRECTLY);
+   STATIC_ASSERT((unsigned) PB_USAGE_DONTBLOCK ==
+ (unsigned) PIPE_TRANSFER_DONTBLOCK);
+   STATIC_ASSERT((unsigned) PB_USAGE_UNSYNCHRONIZED ==
+ (unsigned) PIPE_TRANSFER_UNSYNCHRONIZED);
+
map = pb_map(vmw_pb_buffer(buf), flags, NULL);

 #ifdef DEBUG
diff --git a/src/gallium/winsys/svga/drm/vmw_buffer.h 
b/src/gallium/winsys/svga/drm/vmw_buffer.h
index 6e1151e..8ed56d4 100644
--- a/src/gallium/winsys/svga/drm/vmw_buffer.h
+++ b/src/gallium/winsys/svga/drm/vmw_buffer.h
@@ -33,6 +33,7 @@
 #include "util/u_debug_flush.h"


+/* These extra flags are used wherever the pb_usage_flags enum type is used */
 #define VMW_BUFFER_USAGE_SHARED(1 << 20)
 #define VMW_BUFFER_USAGE_SYNC  (1 << 21)

diff --git a/src/gallium/winsys/svga/drm/vmw_context.c 
b/src/gallium/winsys/svga/drm/vmw_context.c
index c0ee833..59963ff 100644
--- a/src/gallium/winsys/svga/drm/vmw_context.c
+++ b/src/gallium/winsys/svga/drm/vmw_context.c
@@ -161,10 +161,10 @@ vmw_svga_winsys_context(struct svga_winsys_context *swc)
 }


-static inline unsigned
+static inline enum pb_usage_flags
 vmw_translate_to_pb_flags(unsigned flags)
 {
-   unsigned f = 0;
+   enum pb_usage_flags f = 0;
if (flags & SVGA_RELOC_READ)
   f |= PB_USAGE_GPU_READ;

--
1.8.5.6

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

Re: [Mesa-dev] [PATCH 2/2] svga: silence array out of bounds warning

2019-03-04 Thread Neha Bhende
For the series, 
Reviewed-by: Neha Bhende 

Regards,
Neha



From: Brian Paul 
Sent: Monday, March 4, 2019 9:20 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [PATCH 2/2] svga: silence array out of bounds warning

MinGW release build complains about a possible out-of-bounds
array access.  Test i < 4 to silence it.
---
 src/gallium/drivers/svga/svga_tgsi_insn.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/svga/svga_tgsi_insn.c 
b/src/gallium/drivers/svga/svga_tgsi_insn.c
index c7804b2..1392a3c 100644
--- a/src/gallium/drivers/svga/svga_tgsi_insn.c
+++ b/src/gallium/drivers/svga/svga_tgsi_insn.c
@@ -2951,7 +2951,7 @@ svga_emit_immediate(struct svga_shader_emitter *emit,
unsigned i;

assert(1 <= imm->Immediate.NrTokens && imm->Immediate.NrTokens <= 5);
-   for (i = 0; i < imm->Immediate.NrTokens - 1; i++) {
+   for (i = 0; i < 4 && i < imm->Immediate.NrTokens - 1; i++) {
   float f = imm->u[i].Float;
   value[i] = util_is_inf_or_nan(f) ? 0.0f : f;
}
--
1.8.5.6

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

Re: [Mesa-dev] [PATCH] st/wgl: init a variable to silence MinGW warning

2019-03-02 Thread Neha Bhende
Reviewed-by: Neha Bhende 


Regards,

Neha


From: Brian Paul 
Sent: Saturday, March 2, 2019 10:28 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [PATCH] st/wgl: init a variable to silence MinGW warning

MinGW release build says 'value' may be used before being initialized.
---
 src/gallium/state_trackers/wgl/stw_ext_pixelformat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c 
b/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c
index 6281d5d..7abbb80 100644
--- a/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c
+++ b/src/gallium/state_trackers/wgl/stw_ext_pixelformat.c
@@ -487,7 +487,7 @@ wglGetPixelFormatAttribfvARB(HDC hdc, int iPixelFormat, int 
iLayerPlane,
(void) hdc;

for (i = 0; i < nAttributes; i++) {
-  int value;
+  int value = 0;

   if (!stw_query_attrib(iPixelFormat, iLayerPlane,
  piAttributes[i], ))
--
1.8.5.6

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

[Mesa-dev] [Review Request (master branch)] svga: Fix typo s/VGPU10_MAX_FS_INPUTS/VGPU10_MAX_PS_INPUTS/

2019-02-28 Thread Neha Bhende
This caused vmware driver build failure

Fixes: 6010d7b8e8 ("gallium: add PIPE_CAP_MAX_VARYINGS")
---
 src/gallium/drivers/svga/svga_screen.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/svga/svga_screen.c 
b/src/gallium/drivers/svga/svga_screen.c
index 6cb5a14..bcb47bb 100644
--- a/src/gallium/drivers/svga/svga_screen.c
+++ b/src/gallium/drivers/svga/svga_screen.c
@@ -351,7 +351,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap 
param)
case PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS:
   return sws->have_sm4_1 ? 1 : 0; /* only single-channel textures */
case PIPE_CAP_MAX_VARYINGS:
-  return sws->have_vgpu10 ? VGPU10_MAX_FS_INPUTS : 10;
+  return sws->have_vgpu10 ? VGPU10_MAX_PS_INPUTS : 10;
 
/* Unsupported features */
case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
-- 
2.7.4

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

Re: [Mesa-dev] [PATCH] svga: fix dma.pending > 0 test

2019-02-26 Thread Neha Bhende
Looks good.
Reviewed-by: Neha Bhende 


Regards,

Neha


From: Brian Paul 
Sent: Monday, February 25, 2019 7:13 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende
Subject: [PATCH] svga: fix dma.pending > 0 test

The dma.pending field is boolean, so testing for > 0 isn't right.
---
 src/gallium/drivers/svga/svga_resource_buffer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/svga/svga_resource_buffer.c 
b/src/gallium/drivers/svga/svga_resource_buffer.c
index e4d12f0..a3e11ad 100644
--- a/src/gallium/drivers/svga/svga_resource_buffer.c
+++ b/src/gallium/drivers/svga/svga_resource_buffer.c
@@ -117,7 +117,7 @@ svga_buffer_transfer_map(struct pipe_context *pipe,
  (void) svga_buffer_handle(svga, resource, sbuf->bind_flags);
   }

-  if (sbuf->dma.pending > 0) {
+  if (sbuf->dma.pending) {
  svga_buffer_upload_flush(svga, sbuf);
  svga_context_finish(svga);
   }
--
1.8.5.6

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

Re: [Mesa-dev] [Review Request (master branch)] st/mesa: Fix topogun-1.06-orc-84k-resize.trace crash

2019-01-29 Thread Neha Bhende
Thanks Brian and Ilia for the review.


Regards,

Neha


From: Ilia Mirkin 
Sent: Tuesday, January 29, 2019 1:20:50 PM
To: Brian Paul
Cc: Neha Bhende; mesa-dev@lists.freedesktop.org
Subject: Re: [Review Request (master branch)] st/mesa: Fix 
topogun-1.06-orc-84k-resize.trace crash

Reviewed-by: Ilia Mirkin 

Note - not sure that initializing pad is necessary. And there's a
handful of fields missing (like the draw id comes to mind). But ...
it's not important. Sorry again for the screwup!

On Tue, Jan 29, 2019 at 4:17 PM Brian Paul  wrote:
>
> LGTM.  Reviewed-by: Brian Paul 
>
> I'll push this tomorrow, or after Ilia reviews too.
>
>
> On 01/29/2019 12:21 PM, Neha Bhende wrote:
> > We need to initialize all fields in rs->prim explicitly while
> > creating new rastpos stage.
> >
> > Fixes: bac8534267 ("st/mesa: allow glDrawElements to work with GL_SELECT
> > feedback")
> >
> > v2: Initializing all fields in rs->prim as per Ilia.
> >
> > Reviewed-by: Brian Paul 
> > ---
> >   src/mesa/state_tracker/st_cb_rasterpos.c | 4 
> >   1 file changed, 4 insertions(+)
> >
> > diff --git a/src/mesa/state_tracker/st_cb_rasterpos.c 
> > b/src/mesa/state_tracker/st_cb_rasterpos.c
> > index fecaaf7..c54b50d 100644
> > --- a/src/mesa/state_tracker/st_cb_rasterpos.c
> > +++ b/src/mesa/state_tracker/st_cb_rasterpos.c
> > @@ -208,6 +208,10 @@ new_draw_rastpos_stage(struct gl_context *ctx, struct 
> > draw_context *draw)
> >  rs->prim.end = 1;
> >  rs->prim.start = 0;
> >  rs->prim.count = 1;
> > +   rs->prim.pad = 0;
> > +   rs->prim.num_instances = 1;
> > +   rs->prim.base_instance = 0;
> > +   rs->prim.is_indirect = 0;
> >
> >  return rs;
> >   }
> >
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Review Request (master branch)] st/mesa: Fix topogun-1.06-orc-84k-resize.trace crash

2019-01-29 Thread Neha Bhende
We need to initialize all fields in rs->prim explicitly while
creating new rastpos stage.

Fixes: bac8534267 ("st/mesa: allow glDrawElements to work with GL_SELECT
feedback")

v2: Initializing all fields in rs->prim as per Ilia.

Reviewed-by: Brian Paul 
---
 src/mesa/state_tracker/st_cb_rasterpos.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/mesa/state_tracker/st_cb_rasterpos.c 
b/src/mesa/state_tracker/st_cb_rasterpos.c
index fecaaf7..c54b50d 100644
--- a/src/mesa/state_tracker/st_cb_rasterpos.c
+++ b/src/mesa/state_tracker/st_cb_rasterpos.c
@@ -208,6 +208,10 @@ new_draw_rastpos_stage(struct gl_context *ctx, struct 
draw_context *draw)
rs->prim.end = 1;
rs->prim.start = 0;
rs->prim.count = 1;
+   rs->prim.pad = 0;
+   rs->prim.num_instances = 1;
+   rs->prim.base_instance = 0;
+   rs->prim.is_indirect = 0;
 
return rs;
 }
-- 
2.7.4

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


Re: [Mesa-dev] [Review Request (master branch)] st/mesa: Fix topogun-1.06-orc-84k-resize.trace crash

2019-01-29 Thread Neha Bhende
> Would it be wise to just initialize everything explicitly? For example
> this is what _mesa_draw_arrays does:
>
>memset(, 0, sizeof(prim));
>prim.begin = 1;
>prim.end = 1;
>prim.mode = mode;
>prim.num_instances = numInstances;
>prim.base_instance = baseInstance;
>prim.draw_id = drawID;
>prim.is_indirect = 0;
>prim.start = start;
>prim.count = count;
>
> and vbo_exec_Begin has:
>
>exec->vtx.prim[i].mode = mode;
>exec->vtx.prim[i].begin = 1;
>exec->vtx.prim[i].end = 0;
>exec->vtx.prim[i].indexed = 0;
>exec->vtx.prim[i].pad = 0;
>exec->vtx.prim[i].start = exec->vtx.vert_count;
>exec->vtx.prim[i].count = 0;
>exec->vtx.prim[i].num_instances = 1;
>exec->vtx.prim[i].base_instance = 0;
>exec->vtx.prim[i].is_indirect = 0;
>
> I do think that your change is all that's strictly needed though.
> Sorry about the breakage!


I think you are right, we should initialize all fields explicitly here. I will 
send out patch for this and

also modify commit message as per suggested by Brian.


Regards,

Neha


From: Ilia Mirkin 
Sent: Tuesday, January 29, 2019 10:58:01 AM
To: Neha Bhende
Cc: Brian Paul; ML Mesa-dev
Subject: Re: [Mesa-dev] [Review Request (master branch)] st/mesa: Fix 
topogun-1.06-orc-84k-resize.trace crash

Would it be wise to just initialize everything explicitly? For example
this is what _mesa_draw_arrays does:

   memset(, 0, sizeof(prim));
   prim.begin = 1;
   prim.end = 1;
   prim.mode = mode;
   prim.num_instances = numInstances;
   prim.base_instance = baseInstance;
   prim.draw_id = drawID;
   prim.is_indirect = 0;
   prim.start = start;
   prim.count = count;

and vbo_exec_Begin has:

   exec->vtx.prim[i].mode = mode;
   exec->vtx.prim[i].begin = 1;
   exec->vtx.prim[i].end = 0;
   exec->vtx.prim[i].indexed = 0;
   exec->vtx.prim[i].pad = 0;
   exec->vtx.prim[i].start = exec->vtx.vert_count;
   exec->vtx.prim[i].count = 0;
   exec->vtx.prim[i].num_instances = 1;
   exec->vtx.prim[i].base_instance = 0;
   exec->vtx.prim[i].is_indirect = 0;

I do think that your change is all that's strictly needed though.
Sorry about the breakage!

On Tue, Jan 29, 2019 at 1:31 PM Neha Bhende  wrote:
>
> This patch fixes regression caused by
> bac8534267- st/mesa: allow glDrawElements to work with GL_SELECT feedback
> We also need to set instance count while creating new rastpos stage.
>
> Reviewed-by: Brian Paul 
> ---
>  src/mesa/state_tracker/st_cb_rasterpos.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/src/mesa/state_tracker/st_cb_rasterpos.c 
> b/src/mesa/state_tracker/st_cb_rasterpos.c
> index fecaaf7..cca2fba 100644
> --- a/src/mesa/state_tracker/st_cb_rasterpos.c
> +++ b/src/mesa/state_tracker/st_cb_rasterpos.c
> @@ -206,6 +206,7 @@ new_draw_rastpos_stage(struct gl_context *ctx, struct 
> draw_context *draw)
> rs->prim.indexed = 0;
> rs->prim.begin = 1;
> rs->prim.end = 1;
> +   rs->prim.num_instances = 1;
> rs->prim.start = 0;
> rs->prim.count = 1;
>
> --
> 2.7.4
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fmesa-devdata=02%7C01%7Cbhenden%40vmware.com%7Ca611d0289a334ee9273708d6861bb82d%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C636843850945848627sdata=03tQMDRMwfagcQPeALU9Ox2txEb0A8ajAxj2CUgtmIk%3Dreserved=0
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Review Request (master branch)] st/mesa: Fix topogun-1.06-orc-84k-resize.trace crash

2019-01-29 Thread Neha Bhende
This patch fixes regression caused by
bac8534267- st/mesa: allow glDrawElements to work with GL_SELECT feedback
We also need to set instance count while creating new rastpos stage.

Reviewed-by: Brian Paul 
---
 src/mesa/state_tracker/st_cb_rasterpos.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/mesa/state_tracker/st_cb_rasterpos.c 
b/src/mesa/state_tracker/st_cb_rasterpos.c
index fecaaf7..cca2fba 100644
--- a/src/mesa/state_tracker/st_cb_rasterpos.c
+++ b/src/mesa/state_tracker/st_cb_rasterpos.c
@@ -206,6 +206,7 @@ new_draw_rastpos_stage(struct gl_context *ctx, struct 
draw_context *draw)
rs->prim.indexed = 0;
rs->prim.begin = 1;
rs->prim.end = 1;
+   rs->prim.num_instances = 1;
rs->prim.start = 0;
rs->prim.count = 1;
 
-- 
2.7.4

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


Re: [Mesa-dev] [PATCH] svga: add new gallium formats to the format conversion table

2019-01-22 Thread Neha Bhende
Looks good


Reviewed-by: Neha Bhende


Regards,

Neha


From: Brian Paul 
Sent: Tuesday, January 22, 2019 11:31:13 AM
To: mesa-dev@lists.freedesktop.org
Cc: Jose Fonseca; Neha Bhende; Marek Olšák
Subject: [PATCH] svga: add new gallium formats to the format conversion table

Fixes a static assertion which broke the build.

Fixes:3ee240890 "gallium: add SINT formats to have exact counterparts to SNORM 
formats"
---
 src/gallium/drivers/svga/svga_format.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/drivers/svga/svga_format.c 
b/src/gallium/drivers/svga/svga_format.c
index cf88e33..d751eb0 100644
--- a/src/gallium/drivers/svga/svga_format.c
+++ b/src/gallium/drivers/svga/svga_format.c
@@ -371,6 +371,10 @@ static const struct vgpu10_format_entry 
format_conversion_table[] =
{ PIPE_FORMAT_X1B5G5R5_UNORM,SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_FORMAT_INVALID,   0 },
{ PIPE_FORMAT_A4B4G4R4_UNORM,SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_FORMAT_INVALID,   0 },
{ PIPE_FORMAT_R8_SRGB,   SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_FORMAT_INVALID,   0 },
+   { PIPE_FORMAT_A8L8_SINT, SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_FORMAT_INVALID,   0 },
+   { PIPE_FORMAT_G8R8_SINT, SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_FORMAT_INVALID,   0 },
+   { PIPE_FORMAT_A8B8G8R8_SINT, SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_FORMAT_INVALID,   0 },
+   { PIPE_FORMAT_X8B8G8R8_SINT, SVGA3D_FORMAT_INVALID,  
SVGA3D_FORMAT_INVALID,   SVGA3D_FORMAT_INVALID,   0 },
 };


--
1.8.5.6

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


Re: [Mesa-dev] [PATCH] svga: change svga_destroy_shader_variant() to return void

2018-10-09 Thread Neha Bhende
Reviewed-by: Neha Bhende 


Regards,

Neha


From: Brian Paul 
Sent: Tuesday, October 9, 2018 8:06:26 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] svga: change svga_destroy_shader_variant() to return void

svga_destroy_shader_variant() itself flushes and retries the command
if there's a failure.  So no need for the callers to do it.  Other
callers of the function were already ignoring the return value.

This also fixes a corner-case double-free reported by Coverity
(and reported by Dave Airlie).

Tested with various OpenGL apps.
---
 src/gallium/drivers/svga/svga_pipe_fs.c | 7 +--
 src/gallium/drivers/svga/svga_pipe_gs.c | 8 +---
 src/gallium/drivers/svga/svga_pipe_vs.c | 7 +--
 src/gallium/drivers/svga/svga_shader.c  | 5 ++---
 src/gallium/drivers/svga/svga_shader.h  | 2 +-
 5 files changed, 6 insertions(+), 23 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_pipe_fs.c 
b/src/gallium/drivers/svga/svga_pipe_fs.c
index aadfb1a..52366f0 100644
--- a/src/gallium/drivers/svga/svga_pipe_fs.c
+++ b/src/gallium/drivers/svga/svga_pipe_fs.c
@@ -108,12 +108,7 @@ svga_delete_fs_state(struct pipe_context *pipe, void 
*shader)
  svga->state.hw_draw.fs = NULL;
   }

-  ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_PS, variant);
-  if (ret != PIPE_OK) {
- svga_context_flush(svga, NULL);
- ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_PS, 
variant);
- assert(ret == PIPE_OK);
-  }
+  svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_PS, variant);
}

FREE((void *)fs->base.tokens);
diff --git a/src/gallium/drivers/svga/svga_pipe_gs.c 
b/src/gallium/drivers/svga/svga_pipe_gs.c
index 2fe5477..cee92a0 100644
--- a/src/gallium/drivers/svga/svga_pipe_gs.c
+++ b/src/gallium/drivers/svga/svga_pipe_gs.c
@@ -120,13 +120,7 @@ svga_delete_gs_state(struct pipe_context *pipe, void 
*shader)
 svga->state.hw_draw.gs = NULL;
  }

- ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_GS, 
variant);
- if (ret != PIPE_OK) {
-svga_context_flush(svga, NULL);
-ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_GS,
-  variant);
-assert(ret == PIPE_OK);
- }
+ svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_GS, variant);
   }

   FREE((void *)gs->base.tokens);
diff --git a/src/gallium/drivers/svga/svga_pipe_vs.c 
b/src/gallium/drivers/svga/svga_pipe_vs.c
index ba87cb4..3b6d2e9 100644
--- a/src/gallium/drivers/svga/svga_pipe_vs.c
+++ b/src/gallium/drivers/svga/svga_pipe_vs.c
@@ -199,12 +199,7 @@ svga_delete_vs_state(struct pipe_context *pipe, void 
*shader)
  svga->state.hw_draw.vs = NULL;
   }

-  ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_VS, variant);
-  if (ret != PIPE_OK) {
- svga_context_flush(svga, NULL);
- ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_VS, 
variant);
- assert(ret == PIPE_OK);
-  }
+  svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_VS, variant);
}

FREE((void *)vs->base.tokens);
diff --git a/src/gallium/drivers/svga/svga_shader.c 
b/src/gallium/drivers/svga/svga_shader.c
index 7a0bb3d..22e4498 100644
--- a/src/gallium/drivers/svga/svga_shader.c
+++ b/src/gallium/drivers/svga/svga_shader.c
@@ -541,7 +541,7 @@ svga_new_shader_variant(struct svga_context *svga)
 }


-enum pipe_error
+void
 svga_destroy_shader_variant(struct svga_context *svga,
 SVGA3dShaderType type,
 struct svga_shader_variant *variant)
@@ -557,6 +557,7 @@ svga_destroy_shader_variant(struct svga_context *svga,
 /* flush and try again */
 svga_context_flush(svga, NULL);
 ret = SVGA3D_vgpu10_DestroyShader(svga->swc, variant->id);
+assert(ret == PIPE_OK);
  }
  util_bitmask_clear(svga->shader_id_bm, variant->id);
   }
@@ -583,8 +584,6 @@ svga_destroy_shader_variant(struct svga_context *svga,
FREE(variant);

svga->hud.num_shaders--;
-
-   return ret;
 }

 /*
diff --git a/src/gallium/drivers/svga/svga_shader.h 
b/src/gallium/drivers/svga/svga_shader.h
index b80cf18..68991e7 100644
--- a/src/gallium/drivers/svga/svga_shader.h
+++ b/src/gallium/drivers/svga/svga_shader.h
@@ -285,7 +285,7 @@ svga_set_shader(struct svga_context *svga,
 struct svga_shader_variant *
 svga_new_shader_variant(struct svga_context *svga);

-enum pipe_error
+void
 svga_destroy_shader_variant(struct svga_context *svga,
 SVGA3dShaderType type,
 struct svga_shader_variant *variant);
--
2.7.4

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


Re: [Mesa-dev] [PATCH 2/2] swrast: fix crash in AA line code when there's no texture

2018-07-27 Thread Neha Bhende
Looks good.


For series,


Reviewed-by: Neha Bhende


Regards,

Neha


From: Brian Paul 
Sent: Friday, July 27, 2018 12:07:50 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 2/2] swrast: fix crash in AA line code when there's no texture

Fixes a crash running the Piglit polygon-mode-facing test (and
probably others).
---
 src/mesa/swrast/s_aalinetemp.h | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/mesa/swrast/s_aalinetemp.h b/src/mesa/swrast/s_aalinetemp.h
index bebb131..64767a3 100644
--- a/src/mesa/swrast/s_aalinetemp.h
+++ b/src/mesa/swrast/s_aalinetemp.h
@@ -179,10 +179,12 @@ NAME(line)(struct gl_context *ctx, const SWvertex *v0, 
const SWvertex *v1)
  if (attr >= VARYING_SLOT_TEX0 && attr < VARYING_SLOT_VAR0) {
 const GLuint u = attr - VARYING_SLOT_TEX0;
 const struct gl_texture_object *obj = 
ctx->Texture.Unit[u]._Current;
-const struct gl_texture_image *texImage =
-   _mesa_base_tex_image(obj);
-line.texWidth[attr]  = (GLfloat) texImage->Width;
-line.texHeight[attr] = (GLfloat) texImage->Height;
+if (obj) {
+   const struct gl_texture_image *texImage =
+  _mesa_base_tex_image(obj);
+   line.texWidth[attr]  = (GLfloat) texImage->Width;
+   line.texHeight[attr] = (GLfloat) texImage->Height;
+}
  }
   ATTRIB_LOOP_END
}
--
2.7.4

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


Re: [Mesa-dev] [PATCH] st/wgl: check for NULL piAttribList in wglCreatePbufferARB()

2018-07-06 Thread Neha Bhende
Looks good to me.


Reviewed-by: Neha Bhende


Regards,

Neha


From: Charmaine Lee 
Sent: Friday, July 6, 2018 4:09:02 PM
To: mesa-dev@lists.freedesktop.org
Cc: Brian Paul; Neha Bhende; Charmaine Lee
Subject: [PATCH] st/wgl: check for NULL piAttribList in wglCreatePbufferARB()

Java2d opengl pipeline passes NULL piAttribList to
wglCreatePbufferARB(). So skip parsing the attribute list
if it is NULL.
---
 src/gallium/state_trackers/wgl/stw_ext_pbuffer.c | 80 
 1 file changed, 41 insertions(+), 39 deletions(-)

diff --git a/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c 
b/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c
index d709faa..02ccb76 100644
--- a/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c
+++ b/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c
@@ -101,45 +101,47 @@ wglCreatePbufferARB(HDC hCurrentDC,
   return 0;
}

-   for (piAttrib = piAttribList; *piAttrib; piAttrib++) {
-  switch (*piAttrib) {
-  case WGL_PBUFFER_LARGEST_ARB:
- piAttrib++;
- useLargest = *piAttrib;
- break;
-   case WGL_TEXTURE_FORMAT_ARB:
-  /* WGL_ARB_render_texture */
-  piAttrib++;
-  textureFormat = *piAttrib;
-  if (textureFormat != WGL_TEXTURE_RGB_ARB &&
- textureFormat != WGL_TEXTURE_RGBA_ARB &&
- textureFormat != WGL_NO_TEXTURE_ARB) {
- SetLastError(ERROR_INVALID_DATA);
- return 0;
-  }
-  break;
-   case WGL_TEXTURE_TARGET_ARB:
-  /* WGL_ARB_render_texture */
-  piAttrib++;
-  textureTarget = *piAttrib;
-  if (textureTarget != WGL_TEXTURE_CUBE_MAP_ARB &&
-  textureTarget != WGL_TEXTURE_1D_ARB &&
-  textureTarget != WGL_TEXTURE_2D_ARB &&
-  textureTarget != WGL_NO_TEXTURE_ARB) {
- SetLastError(ERROR_INVALID_DATA);
- return 0;
-  }
-  break;
-  case WGL_MIPMAP_TEXTURE_ARB:
- /* WGL_ARB_render_texture */
- piAttrib++;
- textureMipmap = !!*piAttrib;
- break;
-  default:
- SetLastError(ERROR_INVALID_DATA);
- debug_printf("wgl: Unsupported attribute 0x%x in %s\n",
-  *piAttrib, __func__);
- return 0;
+   if (piAttribList) {
+  for (piAttrib = piAttribList; *piAttrib; piAttrib++) {
+ switch (*piAttrib) {
+ case WGL_PBUFFER_LARGEST_ARB:
+piAttrib++;
+useLargest = *piAttrib;
+break;
+  case WGL_TEXTURE_FORMAT_ARB:
+ /* WGL_ARB_render_texture */
+ piAttrib++;
+ textureFormat = *piAttrib;
+ if (textureFormat != WGL_TEXTURE_RGB_ARB &&
+textureFormat != WGL_TEXTURE_RGBA_ARB &&
+textureFormat != WGL_NO_TEXTURE_ARB) {
+SetLastError(ERROR_INVALID_DATA);
+return 0;
+ }
+ break;
+  case WGL_TEXTURE_TARGET_ARB:
+ /* WGL_ARB_render_texture */
+ piAttrib++;
+ textureTarget = *piAttrib;
+ if (textureTarget != WGL_TEXTURE_CUBE_MAP_ARB &&
+ textureTarget != WGL_TEXTURE_1D_ARB &&
+ textureTarget != WGL_TEXTURE_2D_ARB &&
+ textureTarget != WGL_NO_TEXTURE_ARB) {
+SetLastError(ERROR_INVALID_DATA);
+return 0;
+ }
+ break;
+ case WGL_MIPMAP_TEXTURE_ARB:
+/* WGL_ARB_render_texture */
+piAttrib++;
+textureMipmap = !!*piAttrib;
+break;
+ default:
+SetLastError(ERROR_INVALID_DATA);
+debug_printf("wgl: Unsupported attribute 0x%x in %s\n",
+ *piAttrib, __func__);
+return 0;
+ }
   }
}

--
1.9.1

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


Re: [Mesa-dev] [PATCH] tgsi: fix incorrect tgsi_shader_info::num_tokens computation

2018-05-17 Thread Neha Bhende
Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Thursday, May 17, 2018 1:06:26 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende; Roland Scheidegger
Subject: [PATCH] tgsi: fix incorrect tgsi_shader_info::num_tokens computation

We were incrementing num_tokens in each loop iteration while parsing
the shader.  But each call to tgsi_parse_token() can consume more than
one token (and often does).  Instead, just call the tgsi_num_tokens()
function.

Luckily, this issue doesn't seem to effect any current users of this
field (llvmpipe just checks for <= 1, for example).
---
 src/gallium/auxiliary/tgsi/tgsi_scan.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c 
b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index 18488d7..685a413 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -836,13 +836,12 @@ tgsi_scan_shader(const struct tgsi_token *tokens,
   procType == PIPE_SHADER_TESS_EVAL ||
   procType == PIPE_SHADER_COMPUTE);
info->processor = procType;
+   info->num_tokens = tgsi_num_tokens(parse.Tokens);

/**
 ** Loop over incoming program tokens/instructions
 */
while (!tgsi_parse_end_of_tokens()) {
-  info->num_tokens++;
-
   tgsi_parse_token(  );

   switch( parse.FullToken.Token.Type ) {
--
2.7.4

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


Re: [Mesa-dev] [PATCH 3/3] glsl: #undef THIS macro to fix MSVC build

2018-04-13 Thread Neha Bhende
For the series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Friday, April 13, 2018 9:03:41 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 3/3] glsl: #undef THIS macro to fix MSVC build

THIS is a macro in one of the MSVC header files.  It's also a token
in the GLSL lexer.  This causes a compilation failure with MSVC.
This issue seems to be newly exposed after the recent mtypes.h removal
patches.
---
 src/compiler/glsl/glsl_parser_extras.h | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/compiler/glsl/glsl_parser_extras.h 
b/src/compiler/glsl/glsl_parser_extras.h
index 66bd1a3..5b9b6cc 100644
--- a/src/compiler/glsl/glsl_parser_extras.h
+++ b/src/compiler/glsl/glsl_parser_extras.h
@@ -33,6 +33,11 @@
 #include 
 #include "glsl_symbol_table.h"

+/* THIS is a macro defined somewhere deep in the Windows MSVC header files.
+ * Undefine it here to avoid collision with the lexer's THIS token.
+ */
+#undef THIS
+
 struct gl_context;

 struct glsl_switch_state {
--
2.7.4

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


Re: [Mesa-dev] [PATCH] nir: s/uint/unsigned/ to fix MSVC/MinGW build

2018-03-29 Thread Neha Bhende
Reviewed-by: Neha Bhende<bhen...@vmware.com>

From: Brian Paul <bri...@vmware.com>
Sent: Thursday, March 29, 2018 9:02:45 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Charmaine Lee
Subject: [PATCH] nir: s/uint/unsigned/ to fix MSVC/MinGW build

---
 src/compiler/glsl/glsl_to_nir.cpp  | 2 +-
 src/compiler/nir/nir_gather_info.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/compiler/glsl/glsl_to_nir.cpp 
b/src/compiler/glsl/glsl_to_nir.cpp
index c4a6d52..dbb58d8 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -369,7 +369,7 @@ nir_visitor::visit(ir_variable *ir)
   /* Mark all the locations that require two slots */
   if (shader->info.stage == MESA_SHADER_VERTEX &&
   glsl_type_is_dual_slot(glsl_without_array(var->type))) {
- for (uint i = 0; i < glsl_count_attribute_slots(var->type, true); 
i++) {
+ for (unsigned i = 0; i < glsl_count_attribute_slots(var->type, true); 
i++) {
 uint64_t bitfield = BITFIELD64_BIT(var->data.location + i);
 shader->info.vs.double_inputs |= bitfield;
  }
diff --git a/src/compiler/nir/nir_gather_info.c 
b/src/compiler/nir/nir_gather_info.c
index 743f968..5530009 100644
--- a/src/compiler/nir/nir_gather_info.c
+++ b/src/compiler/nir/nir_gather_info.c
@@ -250,7 +250,7 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, 
nir_shader *shader)
  if (shader->info.stage == MESA_SHADER_VERTEX &&
  var->data.mode == nir_var_shader_in &&
  glsl_type_is_dual_slot(glsl_without_array(var->type))) {
-for (uint i = 0; i < glsl_count_attribute_slots(var->type, false); 
i++) {
+for (unsigned i = 0; i < glsl_count_attribute_slots(var->type, 
false); i++) {
int idx = var->data.location + i;
shader->info.vs.double_inputs |= BITFIELD64_BIT(idx);
 }
--
2.7.4

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


Re: [Mesa-dev] [PATCH 2/2] svga: simplify uses_flat_interp expression in emit_input_declarations()

2018-03-22 Thread Neha Bhende
For the series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>



Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Thursday, March 22, 2018 8:28:52 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Charmaine Lee
Subject: [PATCH 2/2] svga: simplify uses_flat_interp expression in 
emit_input_declarations()

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

diff --git a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c 
b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
index 04d8303..4292894 100644
--- a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
+++ b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
@@ -2396,7 +2396,7 @@ emit_input_declarations(struct svga_shader_emitter_v10 
*emit)
emit->info.input_interpolate_loc[i]);

 /* keeps track if flat interpolation mode is being used */
-emit->uses_flat_interp = emit->uses_flat_interp ||
+emit->uses_flat_interp |=
(interpolationMode == VGPU10_INTERPOLATION_CONSTANT);

 name = VGPU10_NAME_UNDEFINED;
--
2.7.4

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


Re: [Mesa-dev] [PATCH 3/3] st/mesa: s/unsigned/enum pipe_shader_type/ for st_bind_ubos()

2018-03-22 Thread Neha Bhende
For the series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Thursday, March 22, 2018 8:29:16 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Charmaine Lee
Subject: [PATCH 3/3] st/mesa: s/unsigned/enum pipe_shader_type/ for 
st_bind_ubos()

---
 src/mesa/state_tracker/st_atom_constbuf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_atom_constbuf.c 
b/src/mesa/state_tracker/st_atom_constbuf.c
index 0c094dc..6455e61 100644
--- a/src/mesa/state_tracker/st_atom_constbuf.c
+++ b/src/mesa/state_tracker/st_atom_constbuf.c
@@ -196,7 +196,7 @@ st_update_cs_constants(struct st_context *st)

 static void
 st_bind_ubos(struct st_context *st, struct gl_program *prog,
- unsigned shader_type)
+ enum pipe_shader_type shader_type)
 {
unsigned i;
struct pipe_constant_buffer cb = { 0 };
--
2.7.4

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


Re: [Mesa-dev] [PATCH] svga: s/unsigned/enum pipe_shader_type/

2018-02-14 Thread Neha Bhende
Looks good.


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Wednesday, February 14, 2018 1:53:52 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] svga: s/unsigned/enum pipe_shader_type/

---
 src/gallium/drivers/svga/svga_tgsi.c| 3 ++-
 src/gallium/drivers/svga/svga_tgsi.h| 5 +++--
 src/gallium/drivers/svga/svga_tgsi_vgpu10.c | 2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_tgsi.c 
b/src/gallium/drivers/svga/svga_tgsi.c
index 0b2d8af..8819313 100644
--- a/src/gallium/drivers/svga/svga_tgsi.c
+++ b/src/gallium/drivers/svga/svga_tgsi.c
@@ -168,7 +168,8 @@ svga_shader_emit_header(struct svga_shader_emitter *emit)
 struct svga_shader_variant *
 svga_tgsi_vgpu9_translate(struct svga_context *svga,
   const struct svga_shader *shader,
-  const struct svga_compile_key *key, unsigned unit)
+  const struct svga_compile_key *key,
+  enum pipe_shader_type unit)
 {
struct svga_shader_variant *variant = NULL;
struct svga_shader_emitter emit;
diff --git a/src/gallium/drivers/svga/svga_tgsi.h 
b/src/gallium/drivers/svga/svga_tgsi.h
index 2581135..e986011 100644
--- a/src/gallium/drivers/svga/svga_tgsi.h
+++ b/src/gallium/drivers/svga/svga_tgsi.h
@@ -65,13 +65,14 @@ static inline void svga_generate_vdecl_semantics( unsigned 
idx,
 struct svga_shader_variant *
 svga_tgsi_vgpu9_translate(struct svga_context *svga,
   const struct svga_shader *shader,
-  const struct svga_compile_key *key, unsigned unit);
+  const struct svga_compile_key *key,
+  enum pipe_shader_type unit);

 struct svga_shader_variant *
 svga_tgsi_vgpu10_translate(struct svga_context *svga,
const struct svga_shader *shader,
const struct svga_compile_key *key,
-   unsigned unit);
+   enum pipe_shader_type unit);

 boolean svga_shader_verify(const uint32_t *tokens, unsigned nr_tokens);

diff --git a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c 
b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
index 73aa78b..4d0834b 100644
--- a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
+++ b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
@@ -6484,7 +6484,7 @@ struct svga_shader_variant *
 svga_tgsi_vgpu10_translate(struct svga_context *svga,
const struct svga_shader *shader,
const struct svga_compile_key *key,
-   unsigned unit)
+   enum pipe_shader_type unit)
 {
struct svga_shader_variant *variant = NULL;
struct svga_shader_emitter_v10 *emit;
--
2.7.4

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


Re: [Mesa-dev] [PATCH 4/4] svga: remove unneeded #includes in svga_pipe_draw.c

2018-02-01 Thread Neha Bhende
For the series,

Reviewed-by: Neha Bhende<bhen...@vmware.com>

From: Brian Paul <bri...@vmware.com>
Sent: Wednesday, January 31, 2018 7:37:23 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 4/4] svga: remove unneeded #includes in svga_pipe_draw.c

---
 src/gallium/drivers/svga/svga_pipe_draw.c | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_pipe_draw.c 
b/src/gallium/drivers/svga/svga_pipe_draw.c
index 8cd7ab0..ee4a105 100644
--- a/src/gallium/drivers/svga/svga_pipe_draw.c
+++ b/src/gallium/drivers/svga/svga_pipe_draw.c
@@ -24,21 +24,14 @@
  **/


-#include "util/u_format.h"
 #include "util/u_helpers.h"
 #include "util/u_inlines.h"
 #include "util/u_prim.h"
 #include "util/u_prim_restart.h"
-#include "util/u_upload_mgr.h"
-#include "indices/u_indices.h"

-#include "svga_hw_reg.h"
-#include "svga_cmd.h"
 #include "svga_context.h"
-#include "svga_screen.h"
 #include "svga_draw.h"
 #include "svga_shader.h"
-#include "svga_state.h"
 #include "svga_surface.h"
 #include "svga_swtnl.h"
 #include "svga_debug.h"
--
2.7.4

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


Re: [Mesa-dev] [PATCH 3/3] mesa: remove MESA_FUNCTION

2018-01-26 Thread Neha Bhende
For series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Friday, January 26, 2018 8:39:18 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 3/3] mesa: remove MESA_FUNCTION

Just use __func__ in the two macros where it was used.
---
 src/mesa/main/context.h | 4 ++--
 src/mesa/main/mtypes.h  | 2 --
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h
index 5d9e2ed..86be66f 100644
--- a/src/mesa/main/context.h
+++ b/src/mesa/main/context.h
@@ -206,7 +206,7 @@ _mesa_inside_dlist_begin_end(const struct gl_context *ctx)
 #define FLUSH_VERTICES(ctx, newstate)   \
 do {\
if (MESA_VERBOSE & VERBOSE_STATE)   \
-  _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", MESA_FUNCTION);\
+  _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", __func__);\
if (ctx->Driver.NeedFlush & FLUSH_STORED_VERTICES)  \
   vbo_exec_FlushVertices(ctx, FLUSH_STORED_VERTICES);  \
ctx->NewState |= newstate;  \
@@ -225,7 +225,7 @@ do {
\
 #define FLUSH_CURRENT(ctx, newstate)\
 do {\
if (MESA_VERBOSE & VERBOSE_STATE)   \
-  _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", MESA_FUNCTION);\
+  _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", __func__); \
if (ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT)   \
   vbo_exec_FlushVertices(ctx, FLUSH_UPDATE_CURRENT);   \
ctx->NewState |= newstate;  \
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 54159bb..9cd32c3 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -5105,11 +5105,9 @@ struct gl_memory_info
 #ifdef DEBUG
 extern int MESA_VERBOSE;
 extern int MESA_DEBUG_FLAGS;
-# define MESA_FUNCTION __func__
 #else
 # define MESA_VERBOSE 0
 # define MESA_DEBUG_FLAGS 0
-# define MESA_FUNCTION "a function"
 #endif


--
2.7.4

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


Re: [Mesa-dev] [PATCH] mesa: silence MinGW 'may be unused uninitialized' warning in get.c

2018-01-26 Thread Neha Bhende
Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Thursday, January 25, 2018 4:29:05 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] mesa: silence MinGW 'may be unused uninitialized' warning in 
get.c

The warning happens on line 2114 for the memcpy(data, p, size) call.
I'm not sure why that generates the warning but not the earlier use
of p in the code.
---
 src/mesa/main/get.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 7f2d72a..5fee9a6 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -2051,7 +2051,7 @@ _mesa_GetUnsignedBytevEXT(GLenum pname, GLubyte *data)
const struct value_desc *d;
union value v;
int shift;
-   void *p;
+   void *p = NULL;
GLsizei size;
const char *func = "glGetUnsignedBytevEXT";

--
2.7.4

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


Re: [Mesa-dev] [PATCH 3/3] mesa: whitespace fixes in varray.h

2018-01-25 Thread Neha Bhende
Looks good.


For the series,

Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Thursday, January 25, 2018 8:48:00 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Charmaine Lee; Roland Scheidegger
Subject: [PATCH 3/3] mesa: whitespace fixes in varray.h

---
 src/mesa/main/varray.h | 55 ++
 1 file changed, 29 insertions(+), 26 deletions(-)

diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h
index 03d81d0..93f2f47 100644
--- a/src/mesa/main/varray.h
+++ b/src/mesa/main/varray.h
@@ -44,9 +44,10 @@ _mesa_vertex_attrib_address(const struct gl_array_attributes 
*array,
if (_mesa_is_bufferobj(binding->BufferObj))
   return (const GLubyte *) (binding->Offset + array->RelativeOffset);
else
-  return array->Ptr;
+  return array->Ptr;
 }

+
 /**
  * Sets the fields in a gl_vertex_array to values derived from a
  * gl_array_attributes and a gl_vertex_buffer_binding.
@@ -70,6 +71,7 @@ _mesa_update_client_array(struct gl_context *ctx,
_mesa_reference_buffer_object(ctx, >BufferObj, binding->BufferObj);
 }

+
 static inline bool
 _mesa_attr_zero_aliases_vertex(const struct gl_context *ctx)
 {
@@ -190,7 +192,7 @@ _mesa_SecondaryColorPointer_no_error(GLint size, GLenum 
type,
  GLsizei stride, const GLvoid *ptr);
 extern void GLAPIENTRY
 _mesa_SecondaryColorPointer(GLint size, GLenum type,
-  GLsizei stride, const GLvoid *ptr);
+GLsizei stride, const GLvoid *ptr);


 extern void GLAPIENTRY
@@ -206,8 +208,8 @@ _mesa_VertexAttribPointer_no_error(GLuint index, GLint 
size, GLenum type,
const GLvoid *pointer);
 extern void GLAPIENTRY
 _mesa_VertexAttribPointer(GLuint index, GLint size, GLenum type,
- GLboolean normalized, GLsizei stride,
- const GLvoid *pointer);
+  GLboolean normalized, GLsizei stride,
+  const GLvoid *pointer);

 void GLAPIENTRY
 _mesa_VertexAttribIPointer_no_error(GLuint index, GLint size, GLenum type,
@@ -295,35 +297,35 @@ _mesa_InterleavedArrays(GLenum format, GLsizei stride, 
const GLvoid *pointer);


 extern void GLAPIENTRY
-_mesa_MultiDrawArrays( GLenum mode, const GLint *first,
-  const GLsizei *count, GLsizei primcount );
+_mesa_MultiDrawArrays(GLenum mode, const GLint *first,
+  const GLsizei *count, GLsizei primcount);

 extern void GLAPIENTRY
-_mesa_MultiDrawElementsEXT( GLenum mode, const GLsizei *count, GLenum type,
-const GLvoid **indices, GLsizei primcount );
+_mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type,
+   const GLvoid **indices, GLsizei primcount);

 extern void GLAPIENTRY
-_mesa_MultiDrawElementsBaseVertex( GLenum mode,
-  const GLsizei *count, GLenum type,
-  const GLvoid **indices, GLsizei primcount,
-  const GLint *basevertex);
+_mesa_MultiDrawElementsBaseVertex(GLenum mode,
+  const GLsizei *count, GLenum type,
+  const GLvoid **indices, GLsizei primcount,
+  const GLint *basevertex);

 extern void GLAPIENTRY
-_mesa_MultiModeDrawArraysIBM( const GLenum * mode, const GLint * first,
- const GLsizei * count,
- GLsizei primcount, GLint modestride );
+_mesa_MultiModeDrawArraysIBM(const GLenum * mode, const GLint * first,
+ const GLsizei * count,
+ GLsizei primcount, GLint modestride );


 extern void GLAPIENTRY
-_mesa_MultiModeDrawElementsIBM( const GLenum * mode, const GLsizei * count,
-   GLenum type, const GLvoid * const * indices,
-   GLsizei primcount, GLint modestride );
+_mesa_MultiModeDrawElementsIBM(const GLenum * mode, const GLsizei * count,
+   GLenum type, const GLvoid * const * indices,
+   GLsizei primcount, GLint modestride );

 extern void GLAPIENTRY
 _mesa_LockArraysEXT(GLint first, GLsizei count);

 extern void GLAPIENTRY
-_mesa_UnlockArraysEXT( void );
+_mesa_UnlockArraysEXT(void);


 extern void GLAPIENTRY
@@ -343,13 +345,13 @@ _mesa_DrawRangeElements(GLenum mode, GLuint start, GLuint 
end, GLsizei count,

 extern void GLAPIENTRY
 _mesa_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
-const GLvoid *indices, GLint basevertex);
+ const GLvoid *indices, GLint basevertex);

 extern void GLAPIENTRY
 _mesa_DrawRangeElementsBaseVertex(GLen

Re: [Mesa-dev] [PATCH] svga: add num-commands-per-draw HUD query

2018-01-16 Thread Neha Bhende
Looks good.
Reviewed-by: Neha Bhende<bhen...@vmware.com>

From: Brian Paul <bri...@vmware.com>
Sent: Friday, January 12, 2018 2:22:07 PM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Charmaine Lee
Subject: [PATCH] svga: add num-commands-per-draw HUD query

This query shows the ratio of total commands vs. drawing commands sent
to the vgpu device.  This gives some idea of how many state changes
are sent per draw call.  The closer the ratio is to 1.0, the better.
---
 src/gallium/drivers/svga/svga_cmd.c| 4 
 src/gallium/drivers/svga/svga_cmd_vgpu10.c | 5 +
 src/gallium/drivers/svga/svga_context.h| 1 +
 src/gallium/drivers/svga/svga_pipe_query.c | 8 
 src/gallium/drivers/svga/svga_screen.c | 2 ++
 src/gallium/drivers/svga/svga_winsys.h | 4 
 6 files changed, 24 insertions(+)

diff --git a/src/gallium/drivers/svga/svga_cmd.c 
b/src/gallium/drivers/svga/svga_cmd.c
index 7b78cb7..2bd1cc2 100644
--- a/src/gallium/drivers/svga/svga_cmd.c
+++ b/src/gallium/drivers/svga/svga_cmd.c
@@ -121,6 +121,8 @@ SVGA3D_FIFOReserve(struct svga_winsys_context *swc,

swc->last_command = cmd;

+   swc->num_commands++;
+
return [1];
 }

@@ -1022,6 +1024,8 @@ SVGA3D_BeginDrawPrimitives(struct svga_winsys_context 
*swc,

swc->hints |= SVGA_HINT_FLAG_CAN_PRE_FLUSH;

+   swc->num_draw_commands++;
+
return PIPE_OK;
 }

diff --git a/src/gallium/drivers/svga/svga_cmd_vgpu10.c 
b/src/gallium/drivers/svga/svga_cmd_vgpu10.c
index 55465f5..bed1403 100644
--- a/src/gallium/drivers/svga/svga_cmd_vgpu10.c
+++ b/src/gallium/drivers/svga/svga_cmd_vgpu10.c
@@ -537,6 +537,7 @@ SVGA3D_vgpu10_Draw(struct svga_winsys_context *swc,

swc->hints |= SVGA_HINT_FLAG_CAN_PRE_FLUSH;
swc->commit(swc);
+   swc->num_draw_commands++;
return PIPE_OK;
 }

@@ -553,6 +554,7 @@ SVGA3D_vgpu10_DrawIndexed(struct svga_winsys_context *swc,

swc->hints |= SVGA_HINT_FLAG_CAN_PRE_FLUSH;
swc->commit(swc);
+   swc->num_draw_commands++;
return PIPE_OK;
 }

@@ -570,6 +572,7 @@ SVGA3D_vgpu10_DrawInstanced(struct svga_winsys_context *swc,

swc->hints |= SVGA_HINT_FLAG_CAN_PRE_FLUSH;
swc->commit(swc);
+   swc->num_draw_commands++;
return PIPE_OK;
 }

@@ -590,6 +593,7 @@ SVGA3D_vgpu10_DrawIndexedInstanced(struct 
svga_winsys_context *swc,

swc->hints |= SVGA_HINT_FLAG_CAN_PRE_FLUSH;
swc->commit(swc);
+   swc->num_draw_commands++;
return PIPE_OK;
 }

@@ -600,6 +604,7 @@ SVGA3D_vgpu10_DrawAuto(struct svga_winsys_context *swc)

swc->hints |= SVGA_HINT_FLAG_CAN_PRE_FLUSH;
swc->commit(swc);
+   swc->num_draw_commands++;
return PIPE_OK;
 }

diff --git a/src/gallium/drivers/svga/svga_context.h 
b/src/gallium/drivers/svga/svga_context.h
index fd0c312..bc881c9 100644
--- a/src/gallium/drivers/svga/svga_context.h
+++ b/src/gallium/drivers/svga/svga_context.h
@@ -73,6 +73,7 @@ enum svga_hud {
SVGA_QUERY_NUM_SURFACE_VIEWS,
SVGA_QUERY_NUM_GENERATE_MIPMAP,
SVGA_QUERY_NUM_FAILED_ALLOCATIONS,
+   SVGA_QUERY_NUM_COMMANDS_PER_DRAW,

 /*SVGA_QUERY_MAX has to be last because it is size of an array*/
SVGA_QUERY_MAX
diff --git a/src/gallium/drivers/svga/svga_pipe_query.c 
b/src/gallium/drivers/svga/svga_pipe_query.c
index 2692452..cec95ed 100644
--- a/src/gallium/drivers/svga/svga_pipe_query.c
+++ b/src/gallium/drivers/svga/svga_pipe_query.c
@@ -751,6 +751,7 @@ svga_create_query(struct pipe_context *pipe,
case SVGA_QUERY_NUM_CONST_BUF_UPDATES:
case SVGA_QUERY_NUM_CONST_UPDATES:
case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
+   case SVGA_QUERY_NUM_COMMANDS_PER_DRAW:
   break;
case SVGA_QUERY_FLUSH_TIME:
case SVGA_QUERY_MAP_BUFFER_TIME:
@@ -832,6 +833,7 @@ svga_destroy_query(struct pipe_context *pipe, struct 
pipe_query *q)
case SVGA_QUERY_NUM_CONST_BUF_UPDATES:
case SVGA_QUERY_NUM_CONST_UPDATES:
case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
+   case SVGA_QUERY_NUM_COMMANDS_PER_DRAW:
   /* nothing */
   break;
default:
@@ -945,6 +947,7 @@ svga_begin_query(struct pipe_context *pipe, struct 
pipe_query *q)
case SVGA_QUERY_NUM_SURFACE_VIEWS:
case SVGA_QUERY_NUM_GENERATE_MIPMAP:
case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
+   case SVGA_QUERY_NUM_COMMANDS_PER_DRAW:
   /* nothing */
   break;
default:
@@ -1059,6 +1062,7 @@ svga_end_query(struct pipe_context *pipe, struct 
pipe_query *q)
case SVGA_QUERY_NUM_SURFACE_VIEWS:
case SVGA_QUERY_NUM_GENERATE_MIPMAP:
case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
+   case SVGA_QUERY_NUM_COMMANDS_PER_DRAW:
   /* nothing */
   break;
default:
@@ -1196,6 +1200,10 @@ svga_get_query_result(struct pipe_context *pipe,
case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
   vresult->u64 = svgascreen->hud.num_failed_allocations;
   break;
+   case SVGA_QUERY_NUM_COMMANDS_PER_DRAW:
+  vresult->f = (float) svga->swc->num_commands
+ / (float) svga->s

Re: [Mesa-dev] [PATCH] svga: check for null fs pointer in update_samplers()

2017-12-28 Thread Neha Bhende
Looks good.

Reviewed-by: Neha Bhende<bhen...@vmware.com>

From: Brian Paul <bri...@vmware.com>
Sent: Thursday, December 28, 2017 8:19:24 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] svga: check for null fs pointer in update_samplers()

This can happen when there's no active fragment shader, such as
when using transform feedback.  This wasn't hit by any Piglit test
but is hit by Daniel Rákos' Nature demo.  VMware bug 2026189.
---
 src/gallium/drivers/svga/svga_state_sampler.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/svga/svga_state_sampler.c 
b/src/gallium/drivers/svga/svga_state_sampler.c
index 9bd0d53..11f36e3 100644
--- a/src/gallium/drivers/svga/svga_state_sampler.c
+++ b/src/gallium/drivers/svga/svga_state_sampler.c
@@ -399,7 +399,7 @@ update_samplers(struct svga_context *svga, unsigned dirty )
  * for this texture unit, don't enable shadow compare in
  * the texture sampler state.
  */
-if (fs->fs_shadow_compare_units & (1 << i)) {
+if (fs && (fs->fs_shadow_compare_units & (1 << i))) {
fs_shadow = true;
 }
  }
--
1.9.1

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


Re: [Mesa-dev] [PATCH] st/mesa: increase size of glsl_base_type bitfields

2017-12-27 Thread Neha Bhende
Looks good.


Reviewed-by : Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Wednesday, December 27, 2017 12:38:53 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] st/mesa: increase size of glsl_base_type bitfields

Change 59f458cd8703b97b31b8 added more enums to glsl_base_type.  We
have to bump up the size of the bitfields for fields of this type
for MSVC.  Also, add another assertion to catch another place where
this enum bitfield is used.
---
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp   | 1 +
 src/mesa/state_tracker/st_glsl_to_tgsi_private.h | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 740c197..ec572f2 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -6254,6 +6254,7 @@ st_translate_program(

ASSERT_BITFIELD_SIZE(st_src_reg, type, GLSL_TYPE_ERROR);
ASSERT_BITFIELD_SIZE(st_dst_reg, type, GLSL_TYPE_ERROR);
+   ASSERT_BITFIELD_SIZE(glsl_to_tgsi_instruction, tex_type, GLSL_TYPE_ERROR);
ASSERT_BITFIELD_SIZE(glsl_to_tgsi_instruction, image_format, 
PIPE_FORMAT_COUNT);
ASSERT_BITFIELD_SIZE(glsl_to_tgsi_instruction, tex_target,
 (gl_texture_index) (NUM_TEXTURE_TARGETS - 1));
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi_private.h 
b/src/mesa/state_tracker/st_glsl_to_tgsi_private.h
index 3e51936..b7f535b 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi_private.h
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi_private.h
@@ -60,7 +60,7 @@ public:
uint16_t swizzle; /**< SWIZZLE_XYZWONEZERO swizzles from Mesa. */
int negate:4; /**< NEGATE_XYZW mask from mesa */
unsigned abs:1;
-   enum glsl_base_type type:5; /** GLSL_TYPE_* from GLSL IR (enum 
glsl_base_type) */
+   enum glsl_base_type type:6; /** GLSL_TYPE_* from GLSL IR (enum 
glsl_base_type) */
unsigned has_index2:1;
gl_register_file file:5; /**< PROGRAM_* from Mesa */
/*
@@ -100,7 +100,7 @@ public:
int16_t index2D;
gl_register_file file:5; /**< PROGRAM_* from Mesa */
unsigned writemask:4; /**< Bitfield of WRITEMASK_[XYZW] */
-   enum glsl_base_type type:5; /** GLSL_TYPE_* from GLSL IR (enum 
glsl_base_type) */
+   enum glsl_base_type type:6; /** GLSL_TYPE_* from GLSL IR (enum 
glsl_base_type) */
unsigned has_index2:1;
unsigned array_id:10;

@@ -128,7 +128,7 @@ public:
unsigned sampler_base:5;
unsigned sampler_array_size:6; /**< 1-based size of sampler array, 1 if not 
array */
gl_texture_index tex_target:5;
-   glsl_base_type tex_type:5;
+   glsl_base_type tex_type:6;
unsigned tex_shadow:1;
enum pipe_format image_format:10;
unsigned tex_offset_num_offset:3;
--
1.9.1

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


Re: [Mesa-dev] [PATCH 2/2] svga: fix TGSI_TEXTURE_SHADOW1D coordinate selection

2017-12-26 Thread Neha Bhende
For the series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha



From: Brian Paul <bri...@vmware.com>
Sent: Saturday, December 23, 2017 9:13 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 2/2] svga: fix TGSI_TEXTURE_SHADOW1D coordinate selection

Fixes about 24 Piglit tex-miplevel-selection tests.
---
 src/gallium/drivers/svga/svga_tgsi_vgpu10.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c 
b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
index deb8e5a..31149dd 100644
--- a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
+++ b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
@@ -4898,12 +4898,10 @@ end_tex_swizzle(struct svga_shader_emitter_v10 *emit,
   switch (swz->texture_target) {
   case TGSI_TEXTURE_SHADOW2D:
   case TGSI_TEXTURE_SHADOWRECT:
+  case TGSI_TEXTURE_SHADOW1D:
   case TGSI_TEXTURE_SHADOW1D_ARRAY:
  coord_src = scalar_src(swz->coord_src, TGSI_SWIZZLE_Z);
  break;
-  case TGSI_TEXTURE_SHADOW1D:
- coord_src = scalar_src(swz->coord_src, TGSI_SWIZZLE_Y);
- break;
   case TGSI_TEXTURE_SHADOWCUBE:
   case TGSI_TEXTURE_SHADOW2D_ARRAY:
  coord_src = scalar_src(swz->coord_src, TGSI_SWIZZLE_W);
--
1.9.1

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


Re: [Mesa-dev] [PATCH 2/2] svga: use tgsi_util_get_shadow_ref_src_index() in a couple place

2017-12-26 Thread Neha Bhende
For the series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>



Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Sunday, December 24, 2017 2:40:28 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 2/2] svga: use tgsi_util_get_shadow_ref_src_index() in a couple 
place

No piglit changes.
---
 src/gallium/drivers/svga/svga_tgsi_vgpu10.c | 29 +++--
 1 file changed, 7 insertions(+), 22 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c 
b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
index 31149dd..3e4a6ed 100644
--- a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
+++ b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
@@ -4782,16 +4782,12 @@ emit_tex_compare_refcoord(struct 
svga_shader_emitter_v10 *emit,
   const struct tgsi_full_src_register *coord)
 {
struct tgsi_full_src_register coord_src_ref;
-   unsigned component;
+   int component;

assert(tgsi_is_shadow_target(target));

-   assert(target != TGSI_TEXTURE_SHADOWCUBE_ARRAY); /* XXX not implemented */
-   if (target == TGSI_TEXTURE_SHADOW2D_ARRAY ||
-   target == TGSI_TEXTURE_SHADOWCUBE)
-  component = TGSI_SWIZZLE_W;
-   else
-  component = TGSI_SWIZZLE_Z;
+   component = tgsi_util_get_shadow_ref_src_index(target) % 4;
+   assert(component >= 0);

coord_src_ref = scalar_src(coord, component);

@@ -4895,21 +4891,10 @@ end_tex_swizzle(struct svga_shader_emitter_v10 *emit,

   assert(emit->unit == PIPE_SHADER_FRAGMENT);

-  switch (swz->texture_target) {
-  case TGSI_TEXTURE_SHADOW2D:
-  case TGSI_TEXTURE_SHADOWRECT:
-  case TGSI_TEXTURE_SHADOW1D:
-  case TGSI_TEXTURE_SHADOW1D_ARRAY:
- coord_src = scalar_src(swz->coord_src, TGSI_SWIZZLE_Z);
- break;
-  case TGSI_TEXTURE_SHADOWCUBE:
-  case TGSI_TEXTURE_SHADOW2D_ARRAY:
- coord_src = scalar_src(swz->coord_src, TGSI_SWIZZLE_W);
- break;
-  default:
- assert(!"Unexpected texture target in end_tex_swizzle()");
- coord_src = scalar_src(swz->coord_src, TGSI_SWIZZLE_Z);
-  }
+  int component =
+ tgsi_util_get_shadow_ref_src_index(swz->texture_target) % 4;
+  assert(component >= 0);
+  coord_src = scalar_src(swz->coord_src, component);

   /* COMPARE tmp, coord, texel */
   emit_comparison(emit, compare_func,
--
1.9.1

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


Re: [Mesa-dev] [PATCH] svga: issue debug warning for unsupported two-sided stencil state

2017-11-14 Thread Neha Bhende
Looks good to me.


Reviewed-by: Neha Bhende <bhen...@vmware.com>


Regards,

Neha


From: mesa-dev <mesa-dev-boun...@lists.freedesktop.org> on behalf of Brian Paul 
<bri...@vmware.com>
Sent: Friday, November 10, 2017 6:40:26 PM
To: mesa-dev@lists.freedesktop.org
Subject: [Mesa-dev] [PATCH] svga: issue debug warning for unsupported two-sided 
stencil state

We only have a single stencil read mask and write mask.  Issue a
warning if different front/back values are used.  The Piglit
gl-2.0-two-sided-stencil test hits this.
---
 src/gallium/drivers/svga/svga_pipe_depthstencil.c | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/src/gallium/drivers/svga/svga_pipe_depthstencil.c 
b/src/gallium/drivers/svga/svga_pipe_depthstencil.c
index 1b62290..e5caa4b 100644
--- a/src/gallium/drivers/svga/svga_pipe_depthstencil.c
+++ b/src/gallium/drivers/svga/svga_pipe_depthstencil.c
@@ -172,6 +172,21 @@ svga_create_depth_stencil_state(struct pipe_context *pipe,

   ds->stencil_mask  = templ->stencil[1].valuemask & 0xff;
   ds->stencil_writemask = templ->stencil[1].writemask & 0xff;
+
+  if (templ->stencil[1].valuemask != templ->stencil[0].valuemask) {
+ pipe_debug_message(>debug.callback, CONFORMANCE,
+"two-sided stencil mask not supported "
+"(front=0x%x, back=0x%x)",
+templ->stencil[0].valuemask,
+templ->stencil[1].valuemask);
+  }
+  if (templ->stencil[1].writemask != templ->stencil[0].writemask) {
+ pipe_debug_message(>debug.callback, CONFORMANCE,
+"two-sided stencil writemask not supported "
+"(front=0x%x, back=0x%x)",
+templ->stencil[0].writemask,
+templ->stencil[1].writemask);
+  }
}
else {
   /* back face state is same as front-face state */
--
1.9.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev=DwIGaQ=uilaK90D4TOVoH58JNXRgQ=U9C05uEFArICiTQ6FqFIgVCB-YGE5G2JTThVEccv_Ec=G0jOYq_LoVonAPIAMBNujnLcGheNLWedG3WtYO3mbn0=QluX83Fb70cz1E8pS8V7mR4zpiIvPP-mO6XYaN-D7bU=
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] mesa: fix GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT query

2017-07-17 Thread Neha Bhende
Looks good.
Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Monday, July 17, 2017 11:28:43 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] mesa: fix GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT query

This query is not allowed in GL core profile 3.3 and later (since
GL_QUADS and GL_QUAD_STRIP are disallowed).  The query was (mistakenly)
supported in GL 3.2.  This fixes the glGet error test accordingly.
---
 src/mesa/main/get.c  | 12 
 src/mesa/main/get_hash_params.py |  2 +-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 6ad107b..3247653 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -162,6 +162,7 @@ enum value_extra {
EXTRA_EXT_SSBO_GS,
EXTRA_EXT_FB_NO_ATTACH_GS,
EXTRA_EXT_ES_GS,
+   EXTRA_EXT_PROVOKING_VERTEX_32,
 };

 #define NO_EXTRA NULL
@@ -573,6 +574,12 @@ static const int extra_EXT_shader_framebuffer_fetch[] = {
EXTRA_END
 };

+static const int extra_EXT_provoking_vertex_32[] = {
+   EXTRA_EXT_PROVOKING_VERTEX_32,
+   EXTRA_END
+};
+
+
 /* This is the big table describing all the enums we accept in
  * glGet*v().  The table is partitioned into six parts: enums
  * understood by all GL APIs (OpenGL, GLES and GLES2), enums shared
@@ -1293,6 +1300,11 @@ check_extra(struct gl_context *ctx, const char *func, 
const struct value_desc *d
  if (_mesa_has_OES_geometry_shader(ctx))
 api_found = GL_TRUE;
  break;
+  case EXTRA_EXT_PROVOKING_VERTEX_32:
+ api_check = TRUE;
+ if (version <= 32)
+api_found = ctx->Extensions.EXT_provoking_vertex;
+ break;
   case EXTRA_END:
  break;
   default: /* *e is a offset into the extension struct */
diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
index 850ce7d..9d67ca4 100644
--- a/src/mesa/main/get_hash_params.py
+++ b/src/mesa/main/get_hash_params.py
@@ -888,7 +888,7 @@ descriptor=[

 # GL_EXT_provoking_vertex
   [ "PROVOKING_VERTEX_EXT", "CONTEXT_ENUM(Light.ProvokingVertex), 
extra_EXT_provoking_vertex" ],
-  [ "QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT", 
"CONTEXT_BOOL(Const.QuadsFollowProvokingVertexConvention), 
extra_EXT_provoking_vertex" ],
+  [ "QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT", 
"CONTEXT_BOOL(Const.QuadsFollowProvokingVertexConvention), 
extra_EXT_provoking_vertex_32" ],

 # GL_ARB_seamless_cube_map
   [ "TEXTURE_CUBE_MAP_SEAMLESS", "CONTEXT_BOOL(Texture.CubeMapSeamless), 
extra_ARB_seamless_cube_map" ],
--
1.9.1

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


Re: [Mesa-dev] [PATCH 5/5] svga: s/unsigned/enum tgsi_texture_type/

2017-07-10 Thread Neha Bhende
For the series,


Reviewed-by: Neha Bhende <bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Monday, July 10, 2017 2:50:25 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 5/5] svga: s/unsigned/enum tgsi_texture_type/

---
 src/gallium/drivers/svga/svga_tgsi_vgpu10.c | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c 
b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
index bbaad20..d29ac28 100644
--- a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
+++ b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c
@@ -2955,7 +2955,8 @@ emit_sampler_declarations(struct svga_shader_emitter_v10 
*emit)
  * Translate TGSI_TEXTURE_x to VGAPU10_RESOURCE_DIMENSION_x.
  */
 static unsigned
-tgsi_texture_to_resource_dimension(unsigned target, boolean is_array)
+tgsi_texture_to_resource_dimension(enum tgsi_texture_type target,
+   boolean is_array)
 {
switch (target) {
case TGSI_TEXTURE_BUFFER:
@@ -4867,7 +4868,7 @@ setup_texcoord(struct svga_shader_emitter_v10 *emit,
  */
 static void
 emit_tex_compare_refcoord(struct svga_shader_emitter_v10 *emit,
-  unsigned target,
+  enum tgsi_texture_type target,
   const struct tgsi_full_src_register *coord)
 {
struct tgsi_full_src_register coord_src_ref;
@@ -4901,7 +4902,7 @@ struct tex_swizzle_info
boolean swizzled;
boolean shadow_compare;
unsigned unit;
-   unsigned texture_target;  /**< TGSI_TEXTURE_x */
+   enum tgsi_texture_type texture_target;  /**< TGSI_TEXTURE_x */
struct tgsi_full_src_register tmp_src;
struct tgsi_full_dst_register tmp_dst;
const struct tgsi_full_dst_register *inst_dst;
--
1.9.1

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


Re: [Mesa-dev] [PATCH] svga: update a few surface format names

2017-06-28 Thread Neha Bhende
Looks good to me.


Reviewed-by:  Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Wednesday, June 28, 2017 3:44:35 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] svga: update a few surface format names

To sync with in-house changes.
---
 .../drivers/svga/include/svga3d_surfacedefs.h  |  8 +++---
 src/gallium/drivers/svga/include/svga3d_types.h|  8 +++---
 src/gallium/drivers/svga/svga_format.c | 32 +++---
 3 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/src/gallium/drivers/svga/include/svga3d_surfacedefs.h 
b/src/gallium/drivers/svga/include/svga3d_surfacedefs.h
index efa358b..89baff3 100644
--- a/src/gallium/drivers/svga/include/svga3d_surfacedefs.h
+++ b/src/gallium/drivers/svga/include/svga3d_surfacedefs.h
@@ -486,12 +486,12 @@ static const struct svga3d_surface_desc 
svga3d_surface_descs[] = {
   64, {{0}, {8}, {32}, {0}},
   {{0}, {32}, {0}, {0}}},

-   {SVGA3D_R32_FLOAT_X8X24_TYPELESS, SVGA3DBLOCKDESC_R_FP,
+   {SVGA3D_R32_FLOAT_X8X24, SVGA3DBLOCKDESC_R_FP,
   {1, 1, 1},  8, 8,
   64, {{0}, {0}, {32}, {0}},
   {{0}, {0}, {0}, {0}}},

-   {SVGA3D_X32_TYPELESS_G8X24_UINT, SVGA3DBLOCKDESC_GREEN,
+   {SVGA3D_X32_G8X24_UINT, SVGA3DBLOCKDESC_GREEN,
   {1, 1, 1},  8, 8,
   64, {{0}, {8}, {0}, {0}},
   {{0}, {32}, {0}, {0}}},
@@ -581,12 +581,12 @@ static const struct svga3d_surface_desc 
svga3d_surface_descs[] = {
   32, {{0}, {8}, {24}, {0}},
   {{0}, {24}, {0}, {0}}},

-   {SVGA3D_R24_UNORM_X8_TYPELESS, SVGA3DBLOCKDESC_RED,
+   {SVGA3D_R24_UNORM_X8, SVGA3DBLOCKDESC_RED,
   {1, 1, 1},  4, 4,
   32, {{0}, {0}, {24}, {0}},
   {{0}, {0}, {0}, {0}}},

-   {SVGA3D_X24_TYPELESS_G8_UINT, SVGA3DBLOCKDESC_GREEN,
+   {SVGA3D_X24_G8_UINT, SVGA3DBLOCKDESC_GREEN,
   {1, 1, 1},  4, 4,
   32, {{0}, {8}, {0}, {0}},
   {{0}, {24}, {0}, {0}}},
diff --git a/src/gallium/drivers/svga/include/svga3d_types.h 
b/src/gallium/drivers/svga/include/svga3d_types.h
index de711c3..ddd9e35 100644
--- a/src/gallium/drivers/svga/include/svga3d_types.h
+++ b/src/gallium/drivers/svga/include/svga3d_types.h
@@ -204,8 +204,8 @@ typedef enum SVGA3dSurfaceFormat {
SVGA3D_R32G32_SINT  = 59,
SVGA3D_R32G8X24_TYPELESS= 60,
SVGA3D_D32_FLOAT_S8X24_UINT = 61,
-   SVGA3D_R32_FLOAT_X8X24_TYPELESS = 62,
-   SVGA3D_X32_TYPELESS_G8X24_UINT  = 63,
+   SVGA3D_R32_FLOAT_X8X24  = 62,
+   SVGA3D_X32_G8X24_UINT   = 63,
SVGA3D_R10G10B10A2_TYPELESS = 64,
SVGA3D_R10G10B10A2_UINT = 65,
SVGA3D_R11G11B10_FLOAT  = 66,
@@ -223,8 +223,8 @@ typedef enum SVGA3dSurfaceFormat {
SVGA3D_R32_SINT = 78,
SVGA3D_R24G8_TYPELESS   = 79,
SVGA3D_D24_UNORM_S8_UINT= 80,
-   SVGA3D_R24_UNORM_X8_TYPELESS= 81,
-   SVGA3D_X24_TYPELESS_G8_UINT = 82,
+   SVGA3D_R24_UNORM_X8 = 81,
+   SVGA3D_X24_G8_UINT  = 82,
SVGA3D_R8G8_TYPELESS= 83,
SVGA3D_R8G8_UNORM   = 84,
SVGA3D_R8G8_UINT= 85,
diff --git a/src/gallium/drivers/svga/svga_format.c 
b/src/gallium/drivers/svga/svga_format.c
index a914b23..95dd04d 100644
--- a/src/gallium/drivers/svga/svga_format.c
+++ b/src/gallium/drivers/svga/svga_format.c
@@ -530,10 +530,10 @@ struct format_cap {
  * avoid querying the host.  In particular, depth/stencil formats which
  * can be rendered to and sampled from.  For example, the gallium format
  * PIPE_FORMAT_Z24_UNORM_S8_UINT is converted to SVGA3D_D24_UNORM_S8_UINT
- * for rendering but converted to SVGA3D_R24_UNORM_X8_TYPELESS for sampling.
+ * for rendering but converted to SVGA3D_R24_UNORM_X8 for sampling.
  * If we want to query if a format supports both rendering and sampling the
  * host will tell us no for SVGA3D_D24_UNORM_S8_UINT, SVGA3D_D16_UNORM and
- * SVGA3D_R24_UNORM_X8_TYPELESS.  So we override the host query for those
+ * SVGA3D_R24_UNORM_X8.  So we override the host query for those
  * formats and report that both can do rendering and sampling.
  */
 static const struct format_cap format_cap_table[] = {
@@ -1026,8 +1026,8 @@ static const struct format_cap format_cap_table[] = {
{
   /* Special case: no devcap / report sampler and depth/stencil ability
*/
-  "SVGA3D_R32_FLOAT_X8X24_TYPELESS",
-  SVGA3D_R32_FLOAT_X8X24_TYPELESS,
+  "SVGA3D_R32_FLOAT_X8X24",
+  SVGA3D_R32_FLOAT_X8X24,
   0, /*SVGA3D_DEVCAP_DXFMT_R32_FLOAT_X8X24_TYPELESS*/
   1, 1, 8,
   SVGA3DFORMAT_OP_TEXTURE |
@@ -1036,8 +1036,8 @@ static const struct format_cap format_cap_table[] = {
   SVGA3DFORMAT_OP_ZSTENCIL
},
{
-  "SVGA3D_X32_TYPELESS_G8X24_UINT",
-  SVGA3D_X32_TYPELESS_G8X24_UINT,
+  "SVGA3

Re: [Mesa-dev] [PATCH 2/2] svga: add new num-failed-allocations HUD query

2017-06-16 Thread Neha Bhende
For the series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Friday, June 16, 2017 3:39:12 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 2/2] svga: add new num-failed-allocations HUD query

This counter is incremented if we fail to allocate memory for
vertex/index/const buffers, textures, etc.
---
 src/gallium/drivers/svga/svga_context.h|  1 +
 src/gallium/drivers/svga/svga_pipe_query.c |  7 +++
 src/gallium/drivers/svga/svga_resource.c   | 17 +++--
 src/gallium/drivers/svga/svga_screen.c |  2 ++
 src/gallium/drivers/svga/svga_screen.h |  1 +
 5 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_context.h 
b/src/gallium/drivers/svga/svga_context.h
index 2987c70..b1ccfc8 100644
--- a/src/gallium/drivers/svga/svga_context.h
+++ b/src/gallium/drivers/svga/svga_context.h
@@ -72,6 +72,7 @@ enum svga_hud {
SVGA_QUERY_NUM_STATE_OBJECTS,
SVGA_QUERY_NUM_SURFACE_VIEWS,
SVGA_QUERY_NUM_GENERATE_MIPMAP,
+   SVGA_QUERY_NUM_FAILED_ALLOCATIONS,

 /*SVGA_QUERY_MAX has to be last because it is size of an array*/
SVGA_QUERY_MAX
diff --git a/src/gallium/drivers/svga/svga_pipe_query.c 
b/src/gallium/drivers/svga/svga_pipe_query.c
index 76360fd..6703b72 100644
--- a/src/gallium/drivers/svga/svga_pipe_query.c
+++ b/src/gallium/drivers/svga/svga_pipe_query.c
@@ -747,6 +747,7 @@ svga_create_query(struct pipe_context *pipe,
case SVGA_QUERY_NUM_BUFFER_UPLOADS:
case SVGA_QUERY_NUM_CONST_BUF_UPDATES:
case SVGA_QUERY_NUM_CONST_UPDATES:
+   case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
   break;
case SVGA_QUERY_FLUSH_TIME:
case SVGA_QUERY_MAP_BUFFER_TIME:
@@ -826,6 +827,7 @@ svga_destroy_query(struct pipe_context *pipe, struct 
pipe_query *q)
case SVGA_QUERY_NUM_BUFFER_UPLOADS:
case SVGA_QUERY_NUM_CONST_BUF_UPDATES:
case SVGA_QUERY_NUM_CONST_UPDATES:
+   case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
   /* nothing */
   break;
default:
@@ -937,6 +939,7 @@ svga_begin_query(struct pipe_context *pipe, struct 
pipe_query *q)
case SVGA_QUERY_NUM_STATE_OBJECTS:
case SVGA_QUERY_NUM_SURFACE_VIEWS:
case SVGA_QUERY_NUM_GENERATE_MIPMAP:
+   case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
   /* nothing */
   break;
default:
@@ -1049,6 +1052,7 @@ svga_end_query(struct pipe_context *pipe, struct 
pipe_query *q)
case SVGA_QUERY_NUM_STATE_OBJECTS:
case SVGA_QUERY_NUM_SURFACE_VIEWS:
case SVGA_QUERY_NUM_GENERATE_MIPMAP:
+   case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
   /* nothing */
   break;
default:
@@ -1182,6 +1186,9 @@ svga_get_query_result(struct pipe_context *pipe,
case SVGA_QUERY_NUM_GENERATE_MIPMAP:
   vresult->u64 = svga->hud.num_generate_mipmap;
   break;
+   case SVGA_QUERY_NUM_FAILED_ALLOCATIONS:
+  vresult->u64 = svgascreen->hud.num_failed_allocations;
+  break;
default:
   assert(!"unexpected query type in svga_get_query_result");
}
diff --git a/src/gallium/drivers/svga/svga_resource.c 
b/src/gallium/drivers/svga/svga_resource.c
index 6a297a2..874cfa0 100644
--- a/src/gallium/drivers/svga/svga_resource.c
+++ b/src/gallium/drivers/svga/svga_resource.c
@@ -33,14 +33,27 @@
 #include "svga_format.h"


+/**
+ * This is the primary driver entrypoint for allocating graphics memory
+ * (vertex/index/constant buffers, textures, etc)
+ */
 static struct pipe_resource *
 svga_resource_create(struct pipe_screen *screen,
  const struct pipe_resource *template)
 {
+   struct pipe_resource *r;
+
if (template->target == PIPE_BUFFER)
-  return svga_buffer_create(screen, template);
+  r = svga_buffer_create(screen, template);
else
-  return svga_texture_create(screen, template);
+  r = svga_texture_create(screen, template);
+
+   if (!r) {
+  struct svga_screen *svgascreen = svga_screen(screen);
+  svgascreen->hud.num_failed_allocations++;
+   }
+
+   return r;
 }


diff --git a/src/gallium/drivers/svga/svga_screen.c 
b/src/gallium/drivers/svga/svga_screen.c
index 3aa9945..0b63525 100644
--- a/src/gallium/drivers/svga/svga_screen.c
+++ b/src/gallium/drivers/svga/svga_screen.c
@@ -916,6 +916,8 @@ svga_get_driver_query_info(struct pipe_screen *screen,
 PIPE_DRIVER_QUERY_TYPE_UINT64),
   QUERY("num-generate-mipmap", SVGA_QUERY_NUM_GENERATE_MIPMAP,
 PIPE_DRIVER_QUERY_TYPE_UINT64),
+  QUERY("num-failed-allocations", SVGA_QUERY_NUM_FAILED_ALLOCATIONS,
+PIPE_DRIVER_QUERY_TYPE_UINT64),
};
 #undef QUERY

diff --git a/src/gallium/drivers/svga/svga_screen.h 
b/src/gallium/drivers/svga/svga_screen.h
index 68834a6..12b9346 100644
--- a/src/gallium/drivers/svga/svga_screen.h
+++ b/src/gallium/drivers/svga/svga_screen.h
@@ -86,6 +86,7 @@ struct svga_screen
   /** 

Re: [Mesa-dev] [PATCH 2/2] wglgears: fix up wglChoosePixelFormatARB() attribute list

2017-05-03 Thread Neha Bhende
Looks good to me. For the series,


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Wednesday, May 3, 2017 12:49:40 PM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 2/2] wglgears: fix up wglChoosePixelFormatARB() attribute list

Specify WGL_DRAW_TO_WINDOW_ARB and WGL_COLOR_BITS_ARB.
Improve some comments, per Charmaine.
---
 src/wgl/wglgears.c | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/wgl/wglgears.c b/src/wgl/wglgears.c
index 7d43822..d673143 100644
--- a/src/wgl/wglgears.c
+++ b/src/wgl/wglgears.c
@@ -421,11 +421,12 @@ make_window(const char *name, int x, int y, int width, 
int height)
}

if (use_srgb) {
-  /* For sRGB we need to use the wglChoosePixelFormatARB() function,
-   * and then create a new context, window, etc.
+  /* We can't query/use extension functions until after we've
+   * created and bound a rendering context (done above).
*
-   * Note: we can't query/use extension functions until after we've
-   * creatend and bound a rendering context.
+   * We can only set the pixel format of the window once, so we need to
+   * create a new device context in order to use the pixel format returned
+   * from wglChoosePixelFormatARB, and then create a new window.
*/
   PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB_func =
  (PFNWGLCHOOSEPIXELFORMATARBPROC)
@@ -434,8 +435,8 @@ make_window(const char *name, int x, int y, int width, int 
height)

   static const int int_attribs[] = {
  WGL_SUPPORT_OPENGL_ARB, TRUE,
- //WGL_COLOR_BITS_ARB, 24,
- //WGL_ALPHA_BITS_ARB, 8,
+ WGL_DRAW_TO_WINDOW_ARB, TRUE,
+ WGL_COLOR_BITS_ARB, 24,  // at least 24-bits of RGB
  WGL_DEPTH_BITS_ARB, 24,
  WGL_DOUBLE_BUFFER_ARB, TRUE,
  WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB, TRUE,
--
1.9.1

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


Re: [Mesa-dev] [PATCH 2/2] wglinfo: query/print sRGB and float pixel format info

2017-04-27 Thread Neha Bhende
series looks good to me.



Reviewed-by : Neha Bhende <bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Thursday, April 27, 2017 10:19:07 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 2/2] wglinfo: query/print sRGB and float pixel format info

Print the columns in the same place as glxinfo.
Use 3 digit hexadecimal field for printing pixel format number.
Remove the 'caveat' field which is non-existant in WGL.

This also fixes a minor bug when we query WGL_PIXEL_TYPE_ARB.
We previously stored the result in info->pfd.iPixelType which is a BYTE
type but the WGL_TYPE_* values are all larger than 255.  Use a temporary
variable instead.
---
 src/wgl/wglinfo.c | 61 +++
 1 file changed, 39 insertions(+), 22 deletions(-)

diff --git a/src/wgl/wglinfo.c b/src/wgl/wglinfo.c
index 8693450..f81978b 100644
--- a/src/wgl/wglinfo.c
+++ b/src/wgl/wglinfo.c
@@ -31,8 +31,9 @@
  *  -l print interesting OpenGL limits (added 5 Sep 2002)
  */

-#include 

+#include 
+#include 
 #include 
 #include 
 #include 
@@ -45,6 +46,7 @@
 static GLboolean have_WGL_ARB_create_context;
 static GLboolean have_WGL_ARB_pixel_format;
 static GLboolean have_WGL_ARB_multisample;
+static GLboolean have_WGL_ARB_framebuffer_sRGB; /* or EXT version */

 static PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB_func;
 static PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB_func;
@@ -57,6 +59,8 @@ struct format_info {
PIXELFORMATDESCRIPTOR pfd;
int sampleBuffers, numSamples;
int transparency;
+   bool floatComponents;
+   bool srgb;
 };


@@ -172,6 +176,10 @@ print_screen_info(HDC _hdc, const struct options *opts, 
GLboolean coreProfile)
  if (extension_supported("WGL_ARB_create_context", wglExtensions)) {
 have_WGL_ARB_create_context = GL_TRUE;
  }
+ if (extension_supported("WGL_ARB_framebuffer_sRGB", wglExtensions) ||
+ extension_supported("WGL_EXT_framebuffer_sRGB", wglExtensions)) {
+have_WGL_ARB_framebuffer_sRGB = GL_TRUE;
+ }
   }
 #endif

@@ -327,9 +335,11 @@ print_visual_attribs_verbose(int iPixelFormat, const 
struct format_info *info)
   visual_render_type_name(info->pfd.iPixelType),
   info->pfd.dwFlags & PFD_DOUBLEBUFFER ? 1 : 0,
   info->pfd.dwFlags & PFD_STEREO ? 1 : 0);
-   printf("rgba: cRedBits=%d cGreenBits=%d cBlueBits=%d cAlphaBits=%d\n",
+   printf("rgba: cRedBits=%d cGreenBits=%d cBlueBits=%d cAlphaBits=%d 
float=%c sRGB=%c\n",
   info->pfd.cRedBits, info->pfd.cGreenBits,
-  info->pfd.cBlueBits, info->pfd.cAlphaBits);
+  info->pfd.cBlueBits, info->pfd.cAlphaBits,
+  info->floatComponents ? 'Y' : 'N',
+  info->srgb ? 'Y' : 'N');
printf("cAuxBuffers=%d cDepthBits=%d cStencilBits=%d\n",
   info->pfd.cAuxBuffers, info->pfd.cDepthBits, info->pfd.cStencilBits);
printf("accum: cRedBits=%d cGreenBits=%d cBlueBits=%d cAlphaBits=%d\n",
@@ -343,25 +353,22 @@ print_visual_attribs_verbose(int iPixelFormat, const 
struct format_info *info)
   printf("swapMethod = Copy\n");
else
   printf("swapMethod = Undefined\n");
-
 }


 static void
 print_visual_attribs_short_header(void)
 {
-   printf("   visual   x   bf lv rg d st colorbuffer ax dp st accumbuffer  ms  
cav\n");
-   printf(" id gen win sp  sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b 
eat\n");
-   
printf("\n");
+   printf("visual   x   bf lv rg d st colorbuffer   sr ax dp st 
accumbuffer  ms \n");
+   printf("  id gen win sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  
a ns b\n");
+   
printf("-\n");
 }


 static void
 print_visual_attribs_short(int iPixelFormat, const struct format_info *info)
 {
-   char *caveat = "None";
-
-   printf("0x%02x %2d  %2d %2d %3d %2d %c%c %c  %c %2d %2d %2d %2d %2d %2d 
%2d",
+   printf("0x%03x %2d  %2d %2d %3d %2d %c%c %c  %c %2d %2d %2d %2d %c  %c %2d 
%2d %2d",
   iPixelFormat,
   info->pfd.dwFlags & PFD_GENERIC_FORMAT ? 1 : 0,
   info->pfd.dwFlags & PFD_DRAW_TO_WINDOW ? 1 : 0,
@@ -374,33 +381,33 @@ print_visual_attribs_short(int iPixelFormat, const struct 
format_info *info)
   info->pfd.dwFlags & PFD_STEREO ? 'y' : '.',
   info->pfd.cRedBits, info->pfd.cGreenBits,
   info->pfd.cBlueBits, info->pfd.cAlphaBits,
+  info->floatComponents ? 'f' : '.',
+  info-

Re: [Mesa-dev] [PATCH] st/mesa: minor clean-ups in st_update_renderbuffer_surface()

2017-04-26 Thread Neha Bhende
Looks good to me.


Reviewed-by: Neha Bhende<bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Wednesday, April 26, 2017 8:28:02 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH] st/mesa: minor clean-ups in st_update_renderbuffer_surface()

Remove unneeded parens.  Add const qualifiers.  Move var decls closer
to where they're used.
---
 src/mesa/state_tracker/st_cb_fbo.c | 17 -
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_fbo.c 
b/src/mesa/state_tracker/st_cb_fbo.c
index 7b9855f..f908225 100644
--- a/src/mesa/state_tracker/st_cb_fbo.c
+++ b/src/mesa/state_tracker/st_cb_fbo.c
@@ -388,18 +388,19 @@ st_update_renderbuffer_surface(struct st_context *st,
 {
struct pipe_context *pipe = st->pipe;
struct pipe_resource *resource = strb->texture;
-   struct st_texture_object *stTexObj = NULL;
+   const struct st_texture_object *stTexObj = NULL;
unsigned rtt_width = strb->Base.Width;
unsigned rtt_height = strb->Base.Height;
unsigned rtt_depth = strb->Base.Depth;
+
/*
 * For winsys fbo, it is possible that the renderbuffer is sRGB-capable but
 * the format of strb->texture is linear (because we have no control over
 * the format).  Check strb->Base.Format instead of strb->texture->format
 * to determine if the rb is sRGB-capable.
 */
-   boolean enable_srgb = (st->ctx->Color.sRGBEnabled &&
- _mesa_get_format_color_encoding(strb->Base.Format) == GL_SRGB);
+   boolean enable_srgb = st->ctx->Color.sRGBEnabled &&
+  _mesa_get_format_color_encoding(strb->Base.Format) == GL_SRGB;
enum pipe_format format = resource->format;

if (strb->is_rtt) {
@@ -408,11 +409,7 @@ st_update_renderbuffer_surface(struct st_context *st,
  format = stTexObj->surface_format;
}

-   format = (enable_srgb) ?
-  util_format_srgb(format) :
-  util_format_linear(format);
-
-   unsigned first_layer, last_layer, level;
+   format = enable_srgb ? util_format_srgb(format) : 
util_format_linear(format);

if (resource->target == PIPE_TEXTURE_1D_ARRAY) {
   rtt_depth = rtt_height;
@@ -420,6 +417,7 @@ st_update_renderbuffer_surface(struct st_context *st,
}

/* find matching mipmap level size */
+   unsigned level;
for (level = 0; level <= resource->last_level; level++) {
   if (u_minify(resource->width0, level) == rtt_width &&
   u_minify(resource->height0, level) == rtt_height &&
@@ -431,6 +429,7 @@ st_update_renderbuffer_surface(struct st_context *st,
assert(level <= resource->last_level);

/* determine the layer bounds */
+   unsigned first_layer, last_layer;
if (strb->rtt_layered) {
   first_layer = 0;
   last_layer = util_max_layer(strb->texture, level);
@@ -443,7 +442,7 @@ st_update_renderbuffer_surface(struct st_context *st,
/* Adjust for texture views */
if (strb->is_rtt && resource->array_size > 1 &&
stTexObj->base.Immutable) {
-  struct gl_texture_object *tex = >base;
+  const struct gl_texture_object *tex = >base;
   first_layer += tex->MinLayer;
   if (!strb->rtt_layered)
  last_layer += tex->MinLayer;
--
1.9.1

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


Re: [Mesa-dev] [PATCH 14/14] svga: move some code in svga_propagate_surface()

2016-08-26 Thread Neha Bhende

Series looks good me.


Reviewed-by: Neha Bhende <bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Friday, August 26, 2016 8:27:18 AM
To: mesa-dev@lists.freedesktop.org
Cc: Neha Bhende; Jose Fonseca
Subject: [PATCH 14/14] svga: move some code in svga_propagate_surface()

Move computation of zslice, layer inside the conditional where they're
used.
---
 src/gallium/drivers/svga/svga_surface.c | 37 +
 1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_surface.c 
b/src/gallium/drivers/svga/svga_surface.c
index 4b0b56c..00e9cbc 100644
--- a/src/gallium/drivers/svga/svga_surface.c
+++ b/src/gallium/drivers/svga/svga_surface.c
@@ -607,35 +607,36 @@ svga_propagate_surface(struct svga_context *svga, struct 
pipe_surface *surf)
struct svga_surface *s = svga_surface(surf);
struct svga_texture *tex = svga_texture(surf->texture);
struct svga_screen *ss = svga_screen(surf->texture->screen);
-   unsigned zslice, layer;
-   unsigned nlayers = 1;
-   unsigned i;

if (!s->dirty)
   return;

SVGA_STATS_TIME_PUSH(ss->sws, SVGA_STATS_TIME_PROPAGATESURFACE);

-   if (surf->texture->target == PIPE_TEXTURE_CUBE) {
-  zslice = 0;
-  layer = surf->u.tex.first_layer;
-   }
-   else if (surf->texture->target == PIPE_TEXTURE_1D_ARRAY ||
-surf->texture->target == PIPE_TEXTURE_2D_ARRAY) {
-  zslice = 0;
-  layer = surf->u.tex.first_layer;
-  nlayers = surf->u.tex.last_layer - surf->u.tex.first_layer + 1;
-   }
-   else {
-  zslice = surf->u.tex.first_layer;
-  layer = 0;
-   }
-
s->dirty = FALSE;
ss->texture_timestamp++;
svga_age_texture_view(tex, surf->u.tex.level);

if (s->handle != tex->handle) {
+  unsigned zslice, layer;
+  unsigned nlayers = 1;
+  unsigned i;
+
+  if (surf->texture->target == PIPE_TEXTURE_CUBE) {
+ zslice = 0;
+ layer = surf->u.tex.first_layer;
+  }
+  else if (surf->texture->target == PIPE_TEXTURE_1D_ARRAY ||
+   surf->texture->target == PIPE_TEXTURE_2D_ARRAY) {
+ zslice = 0;
+ layer = surf->u.tex.first_layer;
+ nlayers = surf->u.tex.last_layer - surf->u.tex.first_layer + 1;
+  }
+  else {
+ zslice = surf->u.tex.first_layer;
+ layer = 0;
+  }
+
   SVGA_DBG(DEBUG_VIEWS,
"svga: Surface propagate: tex %p, level %u, from %p\n",
tex, surf->u.tex.level, surf);
--
1.9.1

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


Re: [Mesa-dev] [PATCH 2/2] svga: fix src/dst typo in can_blit_via_copy_region_vgpu10()

2016-08-17 Thread Neha Bhende
Looks good to me.


Reviewed-by: Neha Bhende <bhen...@vmware.com>


Regards,

Neha


From: Brian Paul <bri...@vmware.com>
Sent: Wednesday, August 17, 2016 7:40:13 AM
To: mesa-dev@lists.freedesktop.org
Cc: Charmaine Lee; Neha Bhende
Subject: [PATCH 2/2] svga: fix src/dst typo in can_blit_via_copy_region_vgpu10()

The function was always returning false because of this typo.

Retested with piglit.  There's some sRGB-related blit failures, but
that seems unrelated.
---
 src/gallium/drivers/svga/svga_pipe_blit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c 
b/src/gallium/drivers/svga/svga_pipe_blit.c
index 1f6382e..9d8c4fe 100644
--- a/src/gallium/drivers/svga/svga_pipe_blit.c
+++ b/src/gallium/drivers/svga/svga_pipe_blit.c
@@ -223,7 +223,7 @@ can_blit_via_copy_region_vgpu10(struct svga_context *svga,
   return false;

stex = svga_texture(blit_info->src.resource);
-   dtex = svga_texture(blit_info->src.resource);
+   dtex = svga_texture(blit_info->dst.resource);

// can't copy within one resource
if (stex->handle == dtex->handle)
--
1.9.1

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