1. 14 Feb, 2018 1 commit
    • Adam Jackson's avatar
      glx: Use vnd layer for dispatch (v4) · d8ec33fe
      Adam Jackson authored
      The big change here is MakeCurrent and context tag tracking. We now
      delegate context tags entirely to the vnd layer, and simply store a
      pointer to the context state as the tag data. If a context is deleted
      while it's current, we allocate a fake ID for the context and move the
      context state there, so the tag data still points to a real context. As
      a result we can stop trying so hard to detach the client from contexts
      at disconnect time and just let resource destruction handle it.
      
      Since vnd handles all the MakeCurrent protocol now, our request handlers
      for it can just be return BadImplementation. We also remove a bunch of
      LEGAL_NEW_RESOURCE, because now by the time we're called vnd has already
      allocated its tracking resource on that XID.
      
      v2: Update to match v2 of the vnd import, and remove more redundant work
      like request length checks.
      
      v3: Add/remove the XID map from the vendor private thunk, not the
      backend. (Kyle Brenneman)
      
      v4: Fix deletion of ghost contexts (Kyle Brenneman)
      Signed-off-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      d8ec33fe
  2. 05 Oct, 2016 1 commit
  3. 25 Mar, 2014 1 commit
  4. 12 Jan, 2014 1 commit
  5. 29 Oct, 2013 1 commit
    • Adam Jackson's avatar
      glx: Remove DRI1 AIGLX (v2) · 8aacf47e
      Adam Jackson authored
      Mesa doesn't ship DRI1 drivers as of 8.0, which is about 18 months and
      three releases ago.  The main reason to have wanted DRI1 AIGLX was to
      get a GLX compositor working, but DRI1's (lack of) memory management API
      meant that the cost of a GLX compositor was breaking direct GLX apps,
      which isn't a great tradeoff.
      
      Of the DRI1 drivers Mesa has dropped, I believe only mga stands to lose
      some functionality here, since it and only it has support for
      NV_texture_rectangle.  Since that's required for every extant GLX
      compositor I know of, I conclude that anybody with a savage, say, would
      probably not notice AIGLX going away, since they wouldn't be running a
      GLX compositor in the first place.
      
      In the future we'd like to use GL in the server in a more natural way,
      as just another EGL client, including in the GLX implementation itself.
      Since there's no EGL implemented for DRI1 drivers, this would already
      doom AIGLX on DRI1 (short of entirely forking the GLX implementation,
      which I'm not enthusiastic about).
      
      v2: Remove DRI1 from AIGLX conditionals in configure.ac [anholt]
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      Signed-off-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      8aacf47e
  6. 21 Nov, 2012 1 commit
  7. 26 Jul, 2012 1 commit
  8. 10 Jul, 2012 5 commits
  9. 21 Mar, 2012 1 commit
    • Keith Packard's avatar
      Introduce a consistent coding style · 9838b703
      Keith Packard authored
      This is strictly the application of the script 'x-indent-all.sh'
      from util/modular. Compared to the patch that Daniel posted in
      January, I've added a few indent flags:
      
      	-bap
      	-psl
      	-T PrivatePtr
      	-T pmWait
      	-T _XFUNCPROTOBEGIN
      	-T _XFUNCPROTOEND
      	-T _X_EXPORT
      
      The typedefs were needed to make the output of sdksyms.sh match the
      previous output, otherwise, the code is formatted badly enough that
      sdksyms.sh generates incorrect output.
      
      The generated code was compared with the previous version and found to
      be essentially identical -- "assert" line numbers and BUILD_TIME were
      the only differences found.
      
      The comparison was done with this script:
      
      dir1=$1
      dir2=$2
      
      for dir in $dir1 $dir2; do
      	(cd $dir && find . -name '*.o' | while read file; do
      		dir=`dirname $file`
      		base=`basename $file .o`
      		dump=$dir/$base.dump
      		objdump -d $file > $dump
      	done)
      done
      
      find $dir1 -name '*.dump' | while read dump; do
      	otherdump=`echo $dump | sed "s;$dir1;$dir2;"`
      	diff -u $dump $otherdump
      done
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Acked-by: Daniel Stone's avatarDaniel Stone <daniel@fooishbar.org>
      Acked-by: Alan Coopersmith's avatarAlan Coopersmith <alan.coopersmith@oracle.com>
      9838b703
  10. 11 Feb, 2009 1 commit
    • Eric Anholt's avatar
      glx: Replace broken GLX visual setup with a fixed "all" mode. · 619c4d60
      Eric Anholt authored
      With trying to match depths so that you didn't end up with a depth 24
      fbconfig for the 32-bit composite visual, I broke the alpha bits on the depth
      24 X visual, which angered other applications.  But in fixing that, the
      pickFBconfigs code for "minimal" also could end up breaking GLX visuals if
      the same FBconfig was chosen for more than one X visual.
      We have no reason to not expose as many visuals as possible, but the old
      "all" mode didn't match any existing X visuals to GLX visuals, so normal
      GL apps didn't work at all.
      
      Instead, replace it with a simple combination of the two modes: Create GLX
      visuals by picking unique FBconfigs with as many features as possible for
      each X visual in order.  Then, for all remaining FBconfigs that are
      appropriate for display, add a corresponding X and GLX visual.
      
      This gets all applications (even ones that aren't smart enough to do FBconfigs)
      get all the options to get the visual configuration they want.  The only
      potential downside is that the composite ARGB visual is unique and gets a
      nearly full-featured GLX visual (except that the root visual might have taken
      the tastiest FBconfig), which means that a dumb compositing manager could
      waste resources. Write compositing managers using FBconfigs instead, please.
      619c4d60
  11. 23 May, 2008 2 commits
  12. 21 May, 2008 1 commit
  13. 20 May, 2008 1 commit
  14. 23 Apr, 2008 1 commit
  15. 15 Feb, 2008 1 commit
  16. 29 Oct, 2007 1 commit
  17. 19 Oct, 2007 2 commits
  18. 27 Mar, 2007 1 commit
  19. 05 Jun, 2006 1 commit
  20. 12 Mar, 2006 1 commit
  21. 03 Nov, 2005 1 commit
  22. 02 Nov, 2005 1 commit
  23. 28 Sep, 2005 1 commit
  24. 16 Jul, 2005 1 commit
  25. 26 Jul, 2004 1 commit
  26. 16 Jun, 2004 3 commits
  27. 23 Apr, 2004 1 commit
  28. 15 Apr, 2004 1 commit
  29. 14 Mar, 2004 1 commit
  30. 05 Mar, 2004 1 commit
  31. 03 Mar, 2004 1 commit
  32. 26 Feb, 2004 1 commit