1. 27 Mar, 2015 4 commits
    • emircan's avatar
      We redesigned the GpuMemoryBuffer interface to handle multiple buffers. These... · 16485532
      emircan authored
      We redesigned the GpuMemoryBuffer interface to handle multiple buffers. These changes started with the purpose of making use of new EGL_LINUX_DMA_BUF_EXT capabilities[0] and followed by an attempt to change the high level API [1].
      
      [0] https://code.google.com/p/chromium/issues/detail?id=439520
      [1] https://codereview.chromium.org/962723002/
      
      The future steps are:
      - Add new GPUMemoryBuffer format gfx::GpuMemoryBuffer::YUV_420
        StrideInBytes() should take index as input
      - Implement multi buffer support on GpuMemoryBufferFactoryOzoneNativeBuffer
        Change BufferToPixmapMap as std::map<std::pair<uint32_t, uint32_t>, ScopedVector<NativePixmap> > so that we can create multiple pixmaps(file descriptors) for single GpuMemoryBufferId
      - Add support for multiple pixmaps in GLImageLinuxDMABuffer
      - Implement support for GpuMemoryBufferImplSharedMemory
        Change GpuMemoryBufferHandle to contain std::vector<base::SharedMemoryHandle>
      - Add support for GLImageSharedMemory and GLImageMemory
      - Look for possible use cases of multiple buffers on Android, Mac, and Win platforms
      
      The new functions added are as below:
      
      class GFX_EXPORT GpuMemoryBuffer {
        // Maps each plane of the buffer into the client's address space so it can be
        // written to by the CPU. A pointer to plane K is stored at index K-1 of the
        // |data| array. This call may block, for instance if the GPU needs to finish
        // accessing the buffer or if CPU caches need to be synchronized. Returns
        // false on failure.
        virtual bool Map(void** data) = 0;
      
        // Fills the stride in bytes for the each plane of the buffer. The stride of
        // plane K is stored at index K-1 of the |stride| array.
        virtual void GetStride(uint32* stride) const = 0;
      };
      
      The classes effected by this change is as below(except the test implementations). Currently none of them supports multiple buffers as the format doesn't exist. They are going to be implemented per platform in future CLs.
      
                                      +---------------+
                                      |GpuMemoryBuffer|
                                      +------+--------+
                                             |
                                    +--------+----------+
                                    |GpuMemoryBufferImpl|
                                    ++----+-----+------++
                                     |    |     |      |
                                     |    |     |      |
      +------------------------------++   |     |   +--+-------------------------+
      |GpuMemoryBufferImplSharedMemory|   |     |   |GpuMemoryBufferImplIOSurface|
      +-------------------------------+   |     |   +----------------------------+
                                          |     |
      +-----------------------------------++  +-+-------------------------------+
      |GpuMemoryBufferImplOzoneNatiVeBuffer|  |GpuMemoryBufferImplSurfaceTexture|
      +------------------------------------+  +---------------------------------+
      |ui::GpuMemoryBufferFactory          |
      |OzoneNatiVeBuffer                   |
      |          INITALIZES                |
      | ui::GLImageOzoneNatiVePixmapDmaBuf |
      | OR                                 |
      | ui::GLImageOzoneNatiVePixmap       |
      +------------------------------------+
      
      BUG=439520
      TEST= GpuMemoryBufferTest.* in gl_tests and GpuMemoryBufferImplTest.* in content_unittests.
      
      Review URL: https://codereview.chromium.org/1024113003
      
      Cr-Commit-Position: refs/heads/master@{#322503}
      16485532
    • sammc's avatar
      OOP PDF: Reset FittingType when manually setting the zoom. · 5050705e
      sammc authored
      Currently, when the zoom level is set to a particular value, the
      viewport's fitting type is unchanged. This can cause the zoom to be
      manually set to one value, but be overridden if the viewport changes
      size as it will automatically re-apply the zoom for the fitting type.
      This CL fixes this by setting the fitting type to none when the zoom is
      set manually.
      
      BUG=470427
      
      Review URL: https://codereview.chromium.org/1038573003
      
      Cr-Commit-Position: refs/heads/master@{#322502}
      5050705e
    • eranm's avatar
      Certificate Transparency: Correct month calculation. · 3d509763
      eranm authored
      The number of SCTs required for certificates with a validity period of over 14 months (but under 15) was incorrect. Fixed by not counting partial months.
      
      BUG=470169
      
      Review URL: https://codereview.chromium.org/1032093002
      
      Cr-Commit-Position: refs/heads/master@{#322501}
      3d509763
    • mostynb's avatar
      favor DCHECK_CURRENTLY_ON for better logs in chromecast/ · 19519140
      mostynb authored
      BUG=466848
      
      Review URL: https://codereview.chromium.org/1038143002
      
      Cr-Commit-Position: refs/heads/master@{#322500}
      19519140
  2. 26 Mar, 2015 36 commits