On 16/05/2016 20:08, Emil Velikov wrote:
On 15 May 2016 at 11:45, Axel Davy <axel.d...@ens.fr> wrote:
And cap to 2 GB on 32 bits.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=94561

Nitpick: please use "Bugzilla: htt.."

Signed-off-by: Axel Davy <axel.d...@ens.fr>
---
  src/gallium/auxiliary/os/os_misc.c       | 2 +-
  src/gallium/drivers/llvmpipe/lp_screen.c | 5 +++++
  2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/os/os_misc.c 
b/src/gallium/auxiliary/os/os_misc.c
index d6b83e9..cf2ef95 100644
--- a/src/gallium/auxiliary/os/os_misc.c
+++ b/src/gallium/auxiliary/os/os_misc.c
@@ -117,7 +117,7 @@ os_get_total_physical_memory(uint64_t *size)
     const long phys_pages = sysconf(_SC_PHYS_PAGES);
     const long page_size = sysconf(_SC_PAGE_SIZE);

-   *size = phys_pages * page_size;
+   *size = (int64_t)phys_pages * (int64_t)page_size;
     return (phys_pages > 0 && page_size > 0);
Can you please split this out roughly like the following

if (phys_pages =< 0 || page_size =< 0)
   return false;

*size = (unt64_t)phys_pages * (unt64_t)page_size;
return true;

I might have butchered it while copying from i915/i965.

  #elif defined(PIPE_OS_APPLE) || defined(PIPE_OS_BSD)
     size_t len = sizeof(*size);
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c 
b/src/gallium/drivers/llvmpipe/lp_screen.c
index 4f61de8..2f84b75 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -279,6 +279,11 @@ llvmpipe_get_param(struct pipe_screen *screen, enum 
pipe_cap param)
        if (!os_get_total_physical_memory(&system_memory))
           return 0;

+#ifdef PIPE_ARCH_X86
+      /* cap to 2 GB on 32 bits system */
+      system_memory = MIN2(system_memory, 2048);
+#endif
+
The 2GiB feels somewhat arbitrary, can we add a brief comment about it
? Then there's the question if other drivers want to apply, and thus
move, it elsewhere.
I think you can have a 32 bits cpu adressing system with a gpu with more than 4GB. However in the case of sw rendering, you eat the same memory space than the app.

2GB was the limit proposed in the bug report. Would you be happy with a link to it in the comment ?

Axel

-Emil


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

Reply via email to