OSDN Git Service

gallium: Put no.of {samples,layers} into pipe_framebuffer_state
authorEdward O'Callaghan <eocallaghan@alterapraxis.com>
Sat, 2 Jan 2016 14:44:55 +0000 (01:44 +1100)
committerDave Airlie <airlied@redhat.com>
Thu, 7 Apr 2016 02:03:58 +0000 (12:03 +1000)
commit0b7075fed75585087fa54b537fa9866bce2fcbee
tree5c2e75c3e2043bc4569d109ee9f82e31ef614034
parentb512b5fd3664781d1f9ada1c784353b85bbe0e5b
gallium: Put no.of {samples,layers} into pipe_framebuffer_state

Here we store the number of samples and layers directly in the
pipe_framebuffer_state so that in the case of
ARB_framebuffer_no_attachment we may make use of them directly.

Further, we adjust various gallium/auxiliary helper functions
accordingly.

V2:
  Convert branches in util_framebuffer_get_num_layers() and
  util_framebuffer_get_num_samples() to their canonical form.

V3:
  'git stash pop' the typo fix of 'cbufs' which should be
  'nr_cbufs' that was missing in V2, woops! Thanks Marek for
  pointing this out yet again.

V4:
  Squash in the following patch:

  'gallium/util: Ensure util_framebuffer_get_num_samples() is valid'

   Upon context creation, internal driver structures are malloc()'ed
   and memset() to zero them. This results in a invalid number of
   samples 'by default'. Handle this in the simplest way to avoid
   elaborate and probably equally sub-optimial solutions.

Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/util/u_dump_state.c
src/gallium/auxiliary/util/u_framebuffer.c
src/gallium/include/pipe/p_state.h