Commit ddbeb31b authored by Daniele Castagna's avatar Daniele Castagna Committed by Commit Bot

viz: Change OverlayResources::size_in_pixels to a single Size

.*DrawQuad::OverlayResources::size_in pixels used to be a vector of 4.
Looking at the code, we always index the first one and we never use
the rest of the array.

This reduces the size of TextureDrawQuad that is the biggest
DrawQuad.
Since QuadList uses the size of the biggest DrawQuad to allocate any
quad, this CL will reduce the memory used by QuadList, even if
TextureDrawQuads are not used.

Change-Id: I554cb1b313519094a893cba6342ad47c15882827
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2058834Reviewed-by: default avatarccameron <ccameron@chromium.org>
Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Auto-Submit: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#742259}
parent bac437a5
...@@ -1068,10 +1068,9 @@ void StreamVideoDrawQuadToDict(const StreamVideoDrawQuad* draw_quad, ...@@ -1068,10 +1068,9 @@ void StreamVideoDrawQuadToDict(const StreamVideoDrawQuad* draw_quad,
DCHECK(dict); DCHECK(dict);
dict->SetKey("uv_top_left", PointFToDict(draw_quad->uv_top_left)); dict->SetKey("uv_top_left", PointFToDict(draw_quad->uv_top_left));
dict->SetKey("uv_bottom_right", PointFToDict(draw_quad->uv_bottom_right)); dict->SetKey("uv_bottom_right", PointFToDict(draw_quad->uv_bottom_right));
const size_t kIndex = StreamVideoDrawQuad::kResourceIdIndex;
DCHECK_EQ(1u, draw_quad->resources.count); DCHECK_EQ(1u, draw_quad->resources.count);
dict->SetKey("overlay_resource_size_in_pixels", dict->SetKey("overlay_resource_size_in_pixels",
SizeToDict(draw_quad->overlay_resources.size_in_pixels[kIndex])); SizeToDict(draw_quad->overlay_resources.size_in_pixels));
} }
#define MAP_VIDEO_TYPE_TO_STRING(NAME) \ #define MAP_VIDEO_TYPE_TO_STRING(NAME) \
...@@ -1117,9 +1116,8 @@ void TextureDrawQuadToDict(const TextureDrawQuad* draw_quad, ...@@ -1117,9 +1116,8 @@ void TextureDrawQuadToDict(const TextureDrawQuad* draw_quad,
"protected_video_type", "protected_video_type",
ProtectedVideoTypeToString(draw_quad->protected_video_type)); ProtectedVideoTypeToString(draw_quad->protected_video_type));
DCHECK_EQ(1u, draw_quad->resources.count); DCHECK_EQ(1u, draw_quad->resources.count);
const size_t kIndex = TextureDrawQuad::kResourceIdIndex;
dict->SetKey("resource_size_in_pixels", dict->SetKey("resource_size_in_pixels",
SizeToDict(draw_quad->overlay_resources.size_in_pixels[kIndex])); SizeToDict(draw_quad->overlay_resources.size_in_pixels));
} }
void TileDrawQuadToDict(const TileDrawQuad* draw_quad, base::Value* dict) { void TileDrawQuadToDict(const TileDrawQuad* draw_quad, base::Value* dict) {
......
...@@ -27,7 +27,7 @@ void StreamVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state, ...@@ -27,7 +27,7 @@ void StreamVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kStreamVideoContent, DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kStreamVideoContent,
rect, visible_rect, needs_blending); rect, visible_rect, needs_blending);
resources.ids[kResourceIdIndex] = resource_id; resources.ids[kResourceIdIndex] = resource_id;
overlay_resources.size_in_pixels[kResourceIdIndex] = resource_size_in_pixels; overlay_resources.size_in_pixels = resource_size_in_pixels;
resources.count = 1; resources.count = 1;
this->uv_top_left = uv_top_left; this->uv_top_left = uv_top_left;
this->uv_bottom_right = uv_bottom_right; this->uv_bottom_right = uv_bottom_right;
...@@ -44,7 +44,7 @@ void StreamVideoDrawQuad::SetAll(const SharedQuadState* shared_quad_state, ...@@ -44,7 +44,7 @@ void StreamVideoDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kStreamVideoContent, DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kStreamVideoContent,
rect, visible_rect, needs_blending); rect, visible_rect, needs_blending);
resources.ids[kResourceIdIndex] = resource_id; resources.ids[kResourceIdIndex] = resource_id;
overlay_resources.size_in_pixels[kResourceIdIndex] = resource_size_in_pixels; overlay_resources.size_in_pixels = resource_size_in_pixels;
resources.count = 1; resources.count = 1;
this->uv_top_left = uv_top_left; this->uv_top_left = uv_top_left;
this->uv_bottom_right = uv_bottom_right; this->uv_bottom_right = uv_bottom_right;
......
...@@ -47,7 +47,7 @@ class VIZ_COMMON_EXPORT StreamVideoDrawQuad : public DrawQuad { ...@@ -47,7 +47,7 @@ class VIZ_COMMON_EXPORT StreamVideoDrawQuad : public DrawQuad {
struct OverlayResources { struct OverlayResources {
OverlayResources(); OverlayResources();
gfx::Size size_in_pixels[Resources::kMaxResourceIdCount]; gfx::Size size_in_pixels;
}; };
OverlayResources overlay_resources; OverlayResources overlay_resources;
...@@ -55,7 +55,7 @@ class VIZ_COMMON_EXPORT StreamVideoDrawQuad : public DrawQuad { ...@@ -55,7 +55,7 @@ class VIZ_COMMON_EXPORT StreamVideoDrawQuad : public DrawQuad {
ResourceId resource_id() const { return resources.ids[kResourceIdIndex]; } ResourceId resource_id() const { return resources.ids[kResourceIdIndex]; }
const gfx::Size& resource_size_in_pixels() const { const gfx::Size& resource_size_in_pixels() const {
return overlay_resources.size_in_pixels[kResourceIdIndex]; return overlay_resources.size_in_pixels;
} }
private: private:
......
...@@ -71,7 +71,7 @@ void TextureDrawQuad::SetAll(const SharedQuadState* shared_quad_state, ...@@ -71,7 +71,7 @@ void TextureDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kTextureContent, rect, DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kTextureContent, rect,
visible_rect, needs_blending); visible_rect, needs_blending);
resources.ids[kResourceIdIndex] = resource_id; resources.ids[kResourceIdIndex] = resource_id;
overlay_resources.size_in_pixels[kResourceIdIndex] = resource_size_in_pixels; overlay_resources.size_in_pixels = resource_size_in_pixels;
resources.count = 1; resources.count = 1;
this->premultiplied_alpha = premultiplied_alpha; this->premultiplied_alpha = premultiplied_alpha;
this->uv_top_left = uv_top_left; this->uv_top_left = uv_top_left;
......
...@@ -76,16 +76,16 @@ class VIZ_COMMON_EXPORT TextureDrawQuad : public DrawQuad { ...@@ -76,16 +76,16 @@ class VIZ_COMMON_EXPORT TextureDrawQuad : public DrawQuad {
struct OverlayResources { struct OverlayResources {
OverlayResources(); OverlayResources();
gfx::Size size_in_pixels[Resources::kMaxResourceIdCount]; gfx::Size size_in_pixels;
}; };
OverlayResources overlay_resources; OverlayResources overlay_resources;
ResourceId resource_id() const { return resources.ids[kResourceIdIndex]; } ResourceId resource_id() const { return resources.ids[kResourceIdIndex]; }
const gfx::Size& resource_size_in_pixels() const { const gfx::Size& resource_size_in_pixels() const {
return overlay_resources.size_in_pixels[kResourceIdIndex]; return overlay_resources.size_in_pixels;
} }
void set_resource_size_in_pixels(const gfx::Size& size_in_pixels) { void set_resource_size_in_pixels(const gfx::Size& size_in_pixels) {
overlay_resources.size_in_pixels[kResourceIdIndex] = size_in_pixels; overlay_resources.size_in_pixels = size_in_pixels;
} }
static const TextureDrawQuad* MaterialCast(const DrawQuad*); static const TextureDrawQuad* MaterialCast(const DrawQuad*);
......
...@@ -106,8 +106,7 @@ bool StructTraits<viz::mojom::StreamVideoQuadStateDataView, viz::DrawQuad>:: ...@@ -106,8 +106,7 @@ bool StructTraits<viz::mojom::StreamVideoQuadStateDataView, viz::DrawQuad>::
data.resource_id(); data.resource_id();
quad->resources.count = 1; quad->resources.count = 1;
return data.ReadResourceSizeInPixels( return data.ReadResourceSizeInPixels(
&quad->overlay_resources.size_in_pixels &quad->overlay_resources.size_in_pixels) &&
[viz::StreamVideoDrawQuad::kResourceIdIndex]) &&
data.ReadUvTopLeft(&quad->uv_top_left) && data.ReadUvTopLeft(&quad->uv_top_left) &&
data.ReadUvBottomRight(&quad->uv_bottom_right); data.ReadUvBottomRight(&quad->uv_bottom_right);
} }
...@@ -132,9 +131,7 @@ bool StructTraits<viz::mojom::TextureQuadStateDataView, viz::DrawQuad>::Read( ...@@ -132,9 +131,7 @@ bool StructTraits<viz::mojom::TextureQuadStateDataView, viz::DrawQuad>::Read(
quad->resources.ids[viz::TextureDrawQuad::kResourceIdIndex] = quad->resources.ids[viz::TextureDrawQuad::kResourceIdIndex] =
data.resource_id(); data.resource_id();
if (!data.ReadResourceSizeInPixels( if (!data.ReadResourceSizeInPixels(&quad->overlay_resources.size_in_pixels)) {
&quad->overlay_resources
.size_in_pixels[viz::TextureDrawQuad::kResourceIdIndex])) {
return false; return false;
} }
......
...@@ -285,8 +285,7 @@ struct StructTraits<viz::mojom::StreamVideoQuadStateDataView, viz::DrawQuad> { ...@@ -285,8 +285,7 @@ struct StructTraits<viz::mojom::StreamVideoQuadStateDataView, viz::DrawQuad> {
static const gfx::Size& resource_size_in_pixels(const viz::DrawQuad& input) { static const gfx::Size& resource_size_in_pixels(const viz::DrawQuad& input) {
const viz::StreamVideoDrawQuad* quad = const viz::StreamVideoDrawQuad* quad =
viz::StreamVideoDrawQuad::MaterialCast(&input); viz::StreamVideoDrawQuad::MaterialCast(&input);
return quad->overlay_resources return quad->overlay_resources.size_in_pixels;
.size_in_pixels[viz::StreamVideoDrawQuad::kResourceIdIndex];
} }
static const gfx::PointF& uv_top_left(const viz::DrawQuad& input) { static const gfx::PointF& uv_top_left(const viz::DrawQuad& input) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment