Find a file
Feng Jiang ac6dddb850 virgl: Make max_hw_atomic_counter_buffers less than PIPE_MAX_HW_ATOMIC_BUFFERS
The values of gl_constants.MaxAtomicBufferBindings and
gl_program_constants.MaxAtomicBuffers are derived from
pipe_shader_caps.max_hw_atomic_counter_buffers, which is
synchronized with the host's GL_MAX_*_ATOMIC_COUNTER_BUFFERS.

Based on the definition of struct virgl_context and other
factors, the current virgl driver can only support a maximum
of 32 atomic buffers. If no restrictions are imposed on
pipe_shader_caps.max_hw_atomic_counter_buffers, an error like
the following will occur in the vm when the host's
GL_MAX_*_ATOMIC_COUNTER_BUFFERS exceeds 32.

  Thread 1 "glmark2-drm" received signal SIGABRT, Aborted.
  Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
  warning: 44	./nptl/pthread_kill.c: No such file or directory
  #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
  #1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
  #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
  #3  0x00007ffff784527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
  #4  0x00007ffff78288ff in __GI_abort () at ./stdlib/abort.c:79
  #5  0x00007ffff782881b in __assert_fail_base (fmt=0x7ffff79d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
  assertion=assertion@entry=0x7ffff63f686a "start + count <= 32", file=file@entry=0x7ffff63f6854 "../src/util/
  bitscan.h", line=line@entry=306, function=function@entry=0x7ffff6d4c020 <__PRETTY_FUNCTION__.16> "u_bit_cons
  ecutive") at ./assert/assert.c:96
  #6  0x00007ffff783b517 in __assert_fail (assertion=assertion@entry=0x7ffff63f686a "start + count <= 32", file
  =file@entry=0x7ffff63f6854 "../src/util/bitscan.h", line=line@entry=306, function=function@entry=0x7ffff6d4c020
  <__PRETTY_FUNCTION__.16> "u_bit_consecutive") at ./assert/assert.c:105
  #7  0x00007ffff5250ef5 in u_bit_consecutive (count=48, start=0) at ../src/util/bitscan.h:306
  #8  0x00007ffff5252337 in u_bit_consecutive (count=48, start=0) at ../src/gallium/auxiliary/util/u_inlines.h:75
  #9  virgl_set_hw_atomic_buffers (ctx=<optimized out>, start_slot=0, count=48, buffers=0x7fffffffd9b0) at ../src/
  gallium/drivers/virgl/virgl_context.c:1351
  #10 0x00007ffff4a58faf in st_bind_hw_atomic_buffers (st=<optimized out>) at ../src/mesa/state_tracker/st_atom_
  atomicbuf.c:168
  #11 0x0000000000000000 in ?? ()

Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35730>
2025-07-01 13:47:09 +00:00
.ci-farms svga/ci: enable vmware farm 2025-06-18 14:52:25 +00:00
.ci-farms-disabled svga/ci: enable vmware farm 2025-06-18 14:52:25 +00:00
.github/workflows meson: remove unused osmesa option 2025-06-23 06:42:50 +00:00
.gitlab docs: update gitlab docs urls 2025-02-23 00:31:59 +01:00
.gitlab-ci ci: reduce the root .gitlab-ci file 2025-06-30 12:32:30 +00:00
.marge/hooks ci: pipeline_message: reset empty errors 2025-01-07 05:08:10 +00:00
android Revert "android: Link with libc++fs up to SDK 35" 2025-06-03 22:01:01 +00:00
bin ci: Fix location of conditional build tags 2025-07-01 10:41:14 +00:00
build-support meson: move tsan-blacklist.txt to build-support with the other build support files 2024-05-01 07:05:12 +00:00
docs panvk: Advertise VK_KHR_calibrated_timestamps 2025-07-01 12:52:41 +00:00
include drm-uapi: update drm_fourcc.h to latest version 2025-06-30 11:56:23 +00:00
licenses licenses: add missing licenses 2025-01-08 20:37:51 +00:00
src virgl: Make max_hw_atomic_counter_buffers less than PIPE_MAX_HW_ATOMIC_BUFFERS 2025-07-01 13:47:09 +00:00
subprojects util: rust: update to rustix 1.0.7 2025-06-26 17:11:41 +00:00
.clang-format
.clang-format-ignore ci: enforce formatting for RADV & ACO 2023-06-16 19:59:52 +00:00
.clang-format-include r300: opt in to clang-format CI enforcement for the compiler 2024-10-15 09:24:02 +00:00
.dir-locals.el
.editorconfig meson: rename meson_options.txt 2025-02-09 08:13:27 +00:00
.git-blame-ignore-revs ir3: add reformatting commits to .git-blame-ignore-revs 2025-02-27 13:10:53 +00:00
.gitattributes gitlab: Highlight .cl as C 2023-11-02 11:37:46 +00:00
.gitignore .gitignore: add .cache folder 2024-05-13 14:32:12 +00:00
.gitlab-ci.yml ci: reduce the root .gitlab-ci file 2025-06-30 12:32:30 +00:00
.graphqlrc.yml
.mailmap mailmap: update my name and email 2025-05-07 00:26:45 +00:00
.mr-label-maker.yml mr-label-maker.yml: remove remaining osmesa occurrences 2025-06-23 06:42:50 +00:00
.shellcheckrc ci: move shellcheck options to .shellcheckrc 2024-10-24 22:43:03 +00:00
CODEOWNERS docs: update gitlab docs urls 2025-02-23 00:31:59 +01:00
meson.build build: Include panfrost to the tools 'all' list 2025-06-26 21:55:17 +00:00
meson.options radeonsi: add a way to override the disk cache key with radeonsi-build-id 2025-06-24 09:34:50 +00:00
README.rst docs: Match README installation guide with meson.rst 2024-07-27 11:53:53 +00:00
rustfmt.toml mesa: Add rustfmt.toml 2024-11-18 22:29:14 +00:00
VERSION VERSION: bump to 25.2 2025-04-16 14:30:14 +02:00

`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library
======================================================


Source
------

This repository lives at https://gitlab.freedesktop.org/mesa/mesa.
Other repositories are likely forks, and code found there is not supported.


Build & install
---------------

You can find more information in our documentation (`docs/install.rst
<https://docs.mesa3d.org/install.html>`_), but the recommended way is to use
Meson (`docs/meson.rst <https://docs.mesa3d.org/meson.html>`_):

.. code-block:: sh

  $ meson setup build
  $ ninja -C build/
  $ sudo ninja -C build/ install

Support
-------

Many Mesa devs hang on IRC; if you're not sure which channel is
appropriate, you should ask your question on `OFTC's #dri-devel
<irc://irc.oftc.net/dri-devel>`_, someone will redirect you if
necessary.
Remember that not everyone is in the same timezone as you, so it might
take a while before someone qualified sees your question.
To figure out who you're talking to, or which nick to ping for your
question, check out `Who's Who on IRC
<https://dri.freedesktop.org/wiki/WhosWho/>`_.

The next best option is to ask your question in an email to the
mailing lists: `mesa-dev\@lists.freedesktop.org
<https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_


Bug reports
-----------

If you think something isn't working properly, please file a bug report
(`docs/bugs.rst <https://docs.mesa3d.org/bugs.html>`_).


Contributing
------------

Contributions are welcome, and step-by-step instructions can be found in our
documentation (`docs/submittingpatches.rst
<https://docs.mesa3d.org/submittingpatches.html>`_).

Note that Mesa uses gitlab for patches submission, review and discussions.