Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(992)

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 2264253003: Command buffers: ensure we only read immediate data once (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
(...skipping 1548 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 GLsizei n = static_cast<GLsizei>(c.n); 1559 GLsizei n = static_cast<GLsizei>(c.n);
1560 uint32_t data_size; 1560 uint32_t data_size;
1561 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1561 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1562 return error::kOutOfBounds; 1562 return error::kOutOfBounds;
1563 } 1563 }
1564 GLuint* buffers = 1564 GLuint* buffers =
1565 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1565 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1566 if (buffers == NULL) { 1566 if (buffers == NULL) {
1567 return error::kOutOfBounds; 1567 return error::kOutOfBounds;
1568 } 1568 }
1569 if (!CheckUniqueAndNonNullIds(n, buffers) || !GenBuffersHelper(n, buffers)) { 1569 auto buffers_copy = base::MakeUnique<GLuint[]>(n);
1570 GLuint* buffers_safe = buffers_copy.get();
1571 for (GLsizei i = 0; i < n; ++i)
1572 buffers_safe[i] = buffers[i];
1573 if (!CheckUniqueAndNonNullIds(n, buffers_safe) ||
1574 !GenBuffersHelper(n, buffers_safe)) {
1570 return error::kInvalidArguments; 1575 return error::kInvalidArguments;
1571 } 1576 }
1572 return error::kNoError; 1577 return error::kNoError;
1573 } 1578 }
1574 1579
1575 error::Error GLES2DecoderImpl::HandleGenerateMipmap( 1580 error::Error GLES2DecoderImpl::HandleGenerateMipmap(
1576 uint32_t immediate_data_size, 1581 uint32_t immediate_data_size,
1577 const void* cmd_data) { 1582 const void* cmd_data) {
1578 const gles2::cmds::GenerateMipmap& c = 1583 const gles2::cmds::GenerateMipmap& c =
1579 *static_cast<const gles2::cmds::GenerateMipmap*>(cmd_data); 1584 *static_cast<const gles2::cmds::GenerateMipmap*>(cmd_data);
(...skipping 16 matching lines...) Expand all
1596 GLsizei n = static_cast<GLsizei>(c.n); 1601 GLsizei n = static_cast<GLsizei>(c.n);
1597 uint32_t data_size; 1602 uint32_t data_size;
1598 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1603 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1599 return error::kOutOfBounds; 1604 return error::kOutOfBounds;
1600 } 1605 }
1601 GLuint* framebuffers = 1606 GLuint* framebuffers =
1602 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1607 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1603 if (framebuffers == NULL) { 1608 if (framebuffers == NULL) {
1604 return error::kOutOfBounds; 1609 return error::kOutOfBounds;
1605 } 1610 }
1606 if (!CheckUniqueAndNonNullIds(n, framebuffers) || 1611 auto framebuffers_copy = base::MakeUnique<GLuint[]>(n);
1607 !GenFramebuffersHelper(n, framebuffers)) { 1612 GLuint* framebuffers_safe = framebuffers_copy.get();
1613 for (GLsizei i = 0; i < n; ++i)
1614 framebuffers_safe[i] = framebuffers[i];
1615 if (!CheckUniqueAndNonNullIds(n, framebuffers_safe) ||
1616 !GenFramebuffersHelper(n, framebuffers_safe)) {
1608 return error::kInvalidArguments; 1617 return error::kInvalidArguments;
1609 } 1618 }
1610 return error::kNoError; 1619 return error::kNoError;
1611 } 1620 }
1612 1621
1613 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate( 1622 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate(
1614 uint32_t immediate_data_size, 1623 uint32_t immediate_data_size,
1615 const void* cmd_data) { 1624 const void* cmd_data) {
1616 const gles2::cmds::GenRenderbuffersImmediate& c = 1625 const gles2::cmds::GenRenderbuffersImmediate& c =
1617 *static_cast<const gles2::cmds::GenRenderbuffersImmediate*>(cmd_data); 1626 *static_cast<const gles2::cmds::GenRenderbuffersImmediate*>(cmd_data);
1618 (void)c; 1627 (void)c;
1619 GLsizei n = static_cast<GLsizei>(c.n); 1628 GLsizei n = static_cast<GLsizei>(c.n);
1620 uint32_t data_size; 1629 uint32_t data_size;
1621 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1630 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1622 return error::kOutOfBounds; 1631 return error::kOutOfBounds;
1623 } 1632 }
1624 GLuint* renderbuffers = 1633 GLuint* renderbuffers =
1625 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1634 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1626 if (renderbuffers == NULL) { 1635 if (renderbuffers == NULL) {
1627 return error::kOutOfBounds; 1636 return error::kOutOfBounds;
1628 } 1637 }
1629 if (!CheckUniqueAndNonNullIds(n, renderbuffers) || 1638 auto renderbuffers_copy = base::MakeUnique<GLuint[]>(n);
1630 !GenRenderbuffersHelper(n, renderbuffers)) { 1639 GLuint* renderbuffers_safe = renderbuffers_copy.get();
1640 for (GLsizei i = 0; i < n; ++i)
1641 renderbuffers_safe[i] = renderbuffers[i];
1642 if (!CheckUniqueAndNonNullIds(n, renderbuffers_safe) ||
1643 !GenRenderbuffersHelper(n, renderbuffers_safe)) {
1631 return error::kInvalidArguments; 1644 return error::kInvalidArguments;
1632 } 1645 }
1633 return error::kNoError; 1646 return error::kNoError;
1634 } 1647 }
1635 1648
1636 error::Error GLES2DecoderImpl::HandleGenSamplersImmediate( 1649 error::Error GLES2DecoderImpl::HandleGenSamplersImmediate(
1637 uint32_t immediate_data_size, 1650 uint32_t immediate_data_size,
1638 const void* cmd_data) { 1651 const void* cmd_data) {
1639 if (!unsafe_es3_apis_enabled()) 1652 if (!unsafe_es3_apis_enabled())
1640 return error::kUnknownCommand; 1653 return error::kUnknownCommand;
1641 const gles2::cmds::GenSamplersImmediate& c = 1654 const gles2::cmds::GenSamplersImmediate& c =
1642 *static_cast<const gles2::cmds::GenSamplersImmediate*>(cmd_data); 1655 *static_cast<const gles2::cmds::GenSamplersImmediate*>(cmd_data);
1643 (void)c; 1656 (void)c;
1644 GLsizei n = static_cast<GLsizei>(c.n); 1657 GLsizei n = static_cast<GLsizei>(c.n);
1645 uint32_t data_size; 1658 uint32_t data_size;
1646 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1659 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1647 return error::kOutOfBounds; 1660 return error::kOutOfBounds;
1648 } 1661 }
1649 GLuint* samplers = 1662 GLuint* samplers =
1650 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1663 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1651 if (samplers == NULL) { 1664 if (samplers == NULL) {
1652 return error::kOutOfBounds; 1665 return error::kOutOfBounds;
1653 } 1666 }
1654 if (!CheckUniqueAndNonNullIds(n, samplers) || 1667 auto samplers_copy = base::MakeUnique<GLuint[]>(n);
1655 !GenSamplersHelper(n, samplers)) { 1668 GLuint* samplers_safe = samplers_copy.get();
1669 for (GLsizei i = 0; i < n; ++i)
1670 samplers_safe[i] = samplers[i];
1671 if (!CheckUniqueAndNonNullIds(n, samplers_safe) ||
1672 !GenSamplersHelper(n, samplers_safe)) {
1656 return error::kInvalidArguments; 1673 return error::kInvalidArguments;
1657 } 1674 }
1658 return error::kNoError; 1675 return error::kNoError;
1659 } 1676 }
1660 1677
1661 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( 1678 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate(
1662 uint32_t immediate_data_size, 1679 uint32_t immediate_data_size,
1663 const void* cmd_data) { 1680 const void* cmd_data) {
1664 const gles2::cmds::GenTexturesImmediate& c = 1681 const gles2::cmds::GenTexturesImmediate& c =
1665 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data); 1682 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data);
1666 (void)c; 1683 (void)c;
1667 GLsizei n = static_cast<GLsizei>(c.n); 1684 GLsizei n = static_cast<GLsizei>(c.n);
1668 uint32_t data_size; 1685 uint32_t data_size;
1669 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1686 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1670 return error::kOutOfBounds; 1687 return error::kOutOfBounds;
1671 } 1688 }
1672 GLuint* textures = 1689 GLuint* textures =
1673 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1690 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1674 if (textures == NULL) { 1691 if (textures == NULL) {
1675 return error::kOutOfBounds; 1692 return error::kOutOfBounds;
1676 } 1693 }
1677 if (!CheckUniqueAndNonNullIds(n, textures) || 1694 auto textures_copy = base::MakeUnique<GLuint[]>(n);
1678 !GenTexturesHelper(n, textures)) { 1695 GLuint* textures_safe = textures_copy.get();
1696 for (GLsizei i = 0; i < n; ++i)
1697 textures_safe[i] = textures[i];
1698 if (!CheckUniqueAndNonNullIds(n, textures_safe) ||
1699 !GenTexturesHelper(n, textures_safe)) {
1679 return error::kInvalidArguments; 1700 return error::kInvalidArguments;
1680 } 1701 }
1681 return error::kNoError; 1702 return error::kNoError;
1682 } 1703 }
1683 1704
1684 error::Error GLES2DecoderImpl::HandleGenTransformFeedbacksImmediate( 1705 error::Error GLES2DecoderImpl::HandleGenTransformFeedbacksImmediate(
1685 uint32_t immediate_data_size, 1706 uint32_t immediate_data_size,
1686 const void* cmd_data) { 1707 const void* cmd_data) {
1687 if (!unsafe_es3_apis_enabled()) 1708 if (!unsafe_es3_apis_enabled())
1688 return error::kUnknownCommand; 1709 return error::kUnknownCommand;
1689 const gles2::cmds::GenTransformFeedbacksImmediate& c = 1710 const gles2::cmds::GenTransformFeedbacksImmediate& c =
1690 *static_cast<const gles2::cmds::GenTransformFeedbacksImmediate*>( 1711 *static_cast<const gles2::cmds::GenTransformFeedbacksImmediate*>(
1691 cmd_data); 1712 cmd_data);
1692 (void)c; 1713 (void)c;
1693 GLsizei n = static_cast<GLsizei>(c.n); 1714 GLsizei n = static_cast<GLsizei>(c.n);
1694 uint32_t data_size; 1715 uint32_t data_size;
1695 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1716 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1696 return error::kOutOfBounds; 1717 return error::kOutOfBounds;
1697 } 1718 }
1698 GLuint* ids = GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1719 GLuint* ids = GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1699 if (ids == NULL) { 1720 if (ids == NULL) {
1700 return error::kOutOfBounds; 1721 return error::kOutOfBounds;
1701 } 1722 }
1702 if (!CheckUniqueAndNonNullIds(n, ids) || 1723 auto ids_copy = base::MakeUnique<GLuint[]>(n);
1703 !GenTransformFeedbacksHelper(n, ids)) { 1724 GLuint* ids_safe = ids_copy.get();
1725 for (GLsizei i = 0; i < n; ++i)
1726 ids_safe[i] = ids[i];
1727 if (!CheckUniqueAndNonNullIds(n, ids_safe) ||
1728 !GenTransformFeedbacksHelper(n, ids_safe)) {
1704 return error::kInvalidArguments; 1729 return error::kInvalidArguments;
1705 } 1730 }
1706 return error::kNoError; 1731 return error::kNoError;
1707 } 1732 }
1708 1733
1709 error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size, 1734 error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size,
1710 const void* cmd_data) { 1735 const void* cmd_data) {
1711 const gles2::cmds::GetBooleanv& c = 1736 const gles2::cmds::GetBooleanv& c =
1712 *static_cast<const gles2::cmds::GetBooleanv*>(cmd_data); 1737 *static_cast<const gles2::cmds::GetBooleanv*>(cmd_data);
1713 (void)c; 1738 (void)c;
(...skipping 3048 matching lines...) Expand 10 before | Expand all | Expand 10 after
4762 GLsizei n = static_cast<GLsizei>(c.n); 4787 GLsizei n = static_cast<GLsizei>(c.n);
4763 uint32_t data_size; 4788 uint32_t data_size;
4764 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 4789 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
4765 return error::kOutOfBounds; 4790 return error::kOutOfBounds;
4766 } 4791 }
4767 GLuint* queries = 4792 GLuint* queries =
4768 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 4793 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
4769 if (queries == NULL) { 4794 if (queries == NULL) {
4770 return error::kOutOfBounds; 4795 return error::kOutOfBounds;
4771 } 4796 }
4772 if (!CheckUniqueAndNonNullIds(n, queries) || 4797 auto queries_copy = base::MakeUnique<GLuint[]>(n);
4773 !GenQueriesEXTHelper(n, queries)) { 4798 GLuint* queries_safe = queries_copy.get();
4799 for (GLsizei i = 0; i < n; ++i)
4800 queries_safe[i] = queries[i];
4801 if (!CheckUniqueAndNonNullIds(n, queries_safe) ||
4802 !GenQueriesEXTHelper(n, queries_safe)) {
4774 return error::kInvalidArguments; 4803 return error::kInvalidArguments;
4775 } 4804 }
4776 return error::kNoError; 4805 return error::kNoError;
4777 } 4806 }
4778 4807
4779 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXTImmediate( 4808 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXTImmediate(
4780 uint32_t immediate_data_size, 4809 uint32_t immediate_data_size,
4781 const void* cmd_data) { 4810 const void* cmd_data) {
4782 const gles2::cmds::DeleteQueriesEXTImmediate& c = 4811 const gles2::cmds::DeleteQueriesEXTImmediate& c =
4783 *static_cast<const gles2::cmds::DeleteQueriesEXTImmediate*>(cmd_data); 4812 *static_cast<const gles2::cmds::DeleteQueriesEXTImmediate*>(cmd_data);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
4885 GLsizei n = static_cast<GLsizei>(c.n); 4914 GLsizei n = static_cast<GLsizei>(c.n);
4886 uint32_t data_size; 4915 uint32_t data_size;
4887 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 4916 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
4888 return error::kOutOfBounds; 4917 return error::kOutOfBounds;
4889 } 4918 }
4890 GLuint* arrays = 4919 GLuint* arrays =
4891 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 4920 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
4892 if (arrays == NULL) { 4921 if (arrays == NULL) {
4893 return error::kOutOfBounds; 4922 return error::kOutOfBounds;
4894 } 4923 }
4895 if (!CheckUniqueAndNonNullIds(n, arrays) || 4924 auto arrays_copy = base::MakeUnique<GLuint[]>(n);
4896 !GenVertexArraysOESHelper(n, arrays)) { 4925 GLuint* arrays_safe = arrays_copy.get();
4926 for (GLsizei i = 0; i < n; ++i)
4927 arrays_safe[i] = arrays[i];
4928 if (!CheckUniqueAndNonNullIds(n, arrays_safe) ||
4929 !GenVertexArraysOESHelper(n, arrays_safe)) {
4897 return error::kInvalidArguments; 4930 return error::kInvalidArguments;
4898 } 4931 }
4899 return error::kNoError; 4932 return error::kNoError;
4900 } 4933 }
4901 4934
4902 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOESImmediate( 4935 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOESImmediate(
4903 uint32_t immediate_data_size, 4936 uint32_t immediate_data_size,
4904 const void* cmd_data) { 4937 const void* cmd_data) {
4905 const gles2::cmds::DeleteVertexArraysOESImmediate& c = 4938 const gles2::cmds::DeleteVertexArraysOESImmediate& c =
4906 *static_cast<const gles2::cmds::DeleteVertexArraysOESImmediate*>( 4939 *static_cast<const gles2::cmds::DeleteVertexArraysOESImmediate*>(
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after
5653 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled; 5686 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled;
5654 return true; 5687 return true;
5655 } 5688 }
5656 return false; 5689 return false;
5657 default: 5690 default:
5658 NOTREACHED(); 5691 NOTREACHED();
5659 return false; 5692 return false;
5660 } 5693 }
5661 } 5694 }
5662 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 5695 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698