AMD mở rộng SDK Radeon Cauldron 1.0 cho cộng đồng lập trình sử dụng C ++ đơn giản hóa

Phần cứng / AMD mở rộng SDK Radeon Cauldron 1.0 cho cộng đồng lập trình sử dụng C ++ đơn giản hóa 4 phút đọc

Sau quá trình thử nghiệm nội bộ rộng rãi và áp dụng nhanh chóng đáng ngạc nhiên bên trong, AMD hiện đang cung cấp Bộ phát triển phần mềm Radeon Cauldron 1.0 (SDK) cho cộng đồng lập trình. Công ty đảm bảo rằng khung không chỉ được đơn giản hóa mà còn rất linh hoạt. Nói cách khác, Radeon Cauldron SDK rất dễ hiểu đối với người mới bắt đầu. Hơn nữa, framework rất linh hoạt cho các lập trình viên muốn mở rộng nó với các tính năng mới.



AMD đang cung cấp một trong những khung phát triển phần mềm tới quần chúng. Bản phát hành toàn diện và ổn định đầu tiên của Radeon Cauldron SDK hiện đã có sẵn cho các lập trình viên. Radeon Cauldron về cơ bản là một thư viện khung để tạo mẫu nhanh. Nó được sử dụng trong các mẫu và hiệu ứng SDK AMD. SDK hoạt động liền mạch với API Vulkan hoặc Direct3D 12. AMD đã tạo ra toàn bộ khung có sẵn để tải xuống trên GitHub , kho lưu trữ phổ biến nhất cho phần mềm nguồn mở mới được Microsoft mua lại gần đây. Điều thú vị là AMD cũng đã đã tải lên một GltfSample . Ứng dụng có tên kỳ lạ đã được thiết kế, phát triển và xây dựng bằng cách sử dụng khung Cauldron. Ngẫu nhiên, tất cả các tài nguyên có liên quan đến Radeon Cauldron SDK cũng có sẵn trên GitHub.

Radeon Cauldron SDK là gì và nó sẽ ảnh hưởng đến phát triển phần mềm, ứng dụng hoặc trò chơi như thế nào?

Radeon Cauldron về cơ bản là một khung toàn bộ hoặc Bộ phát triển phần mềm hoàn chỉnh để tạo mẫu nhanh. Nó sẽ chủ yếu được sử dụng trong các mẫu và hiệu ứng AMD SDK. Như đã đề cập ở trên, nó có thể hoạt động tối ưu với Vulkan, đây là một API điện toán và đồ họa 3D đa nền tảng, chi phí thấp được ưa thích. Hơn nữa, SDK cũng hoạt động với phiên bản mới nhất của Direct3D, là Direct3D 12.



Radeon Cauldron SDK lần đầu tiên được phát hành nội bộ tại AMD. Mặc dù được mong đợi, nhưng bản phát hành đầu tiên đã được các nhóm phát triển phần mềm nội bộ của AMD chấp nhận và thông qua một cách đặc biệt. Sau dự án thử nghiệm đầu tiên, AMD xác nhận rằng ngay cả các nhóm tiếp xúc khác trong công ty cũng bắt đầu quan tâm. Cuối cùng, SDK đã trở thành một trong những khuôn khổ ưa thích cho các nhóm xử lý các công cụ, trình điều khiển và thậm chí cả phần mềm và tính năng trình diễn.



AMD đang cung cấp Radeon Cauldron 1.0 trên GPUOpen theo giấy phép mã nguồn mở MIT. Công ty đã nhiều lần nhấn mạnh sự dễ hiểu của mã và sự dễ dàng mở rộng như nhau. Nói cách khác, ngay cả khi không có các lập trình viên có kinh nghiệm, người dùng mới có thể nhanh chóng giải mã nhiều thành phần và các chức năng riêng lẻ của chúng cũng như các phần phụ thuộc. Điều này sẽ đơn giản hóa đáng kể quá trình phát triển phức tạp và đảm bảo rằng tất cả người dùng đều tự tin và thoải mái khi sử dụng như nhau. Hơn nữa, các lập trình viên có thể mở rộng mã một cách nhanh chóng và hiệu quả mà không phải lo lắng về việc cản trở công việc trước đây hoặc vi phạm điều gì đó trong quá trình này.



Khung làm việc linh hoạt và linh hoạt một cách đáng ngạc nhiên, đảm bảo với AMD. Các tuyên bố có vẻ đúng chủ yếu vì SDK sử dụng vanilla C ++. AMD đã phát triển tương tự với mục đích rõ ràng là tuân theo triết lý 'một tính năng, một lớp, một tệp'. Không cần phải đề cập đến điều này có nghĩa là các lập trình viên không cần điều hướng phức tạp và nhiều tệp trong khi chỉ cần cố gắng hiểu cách một ứng dụng hoặc nền tảng web hoạt động. AMD đã đảm bảo rằng Radeon Cauldron SDK sẽ bám vào dạng lớp đơn giản nhất. Nói cách khác, bất cứ khi nào có thể, hầu hết các lớp sẽ triển khai các phương thức sau:

lớp MyTechnique

{



bool OnCreate (…); // tạo đường ống, hình học tĩnh và các khởi tạo một lần khác

void OnDestroy (…);

void OnDraw (…) // sử dụng các tài nguyên đã tạo để vẽ kỹ thuật

}

Radeon Cauldron SDK cho phép hai kỹ thuật cần thiết để hiển thị các mô hình glTF 2.0. Trong khi một cái là cần thiết cho đường chuyền PBR (Kết xuất dựa trên vật lý), cái kia dành cho đường chuyền Chỉ độ sâu. Là một phần mở rộng, có hai lớp được gọi là GltfPbrPass và GltfDepthPass. Dữ liệu của mô hình glTF được chia thành ba tệp:

  1. GltfCommon, một lớp bất khả tri API tải và quản lý quá trình chuyển đổi và hoạt ảnh của cảnh, bao gồm lớp skinnin MyTechnique {bool OnCreate (…); // tạo đường ống, hình học tĩnh và các khởi tạo một lần khác void OnDestroy (…); void OnDraw (…) // sử dụng tài nguyên đã tạo để vẽ kỹ thuật} g.
  2. GltfTexturesAndBuffers, một lớp tải và giữ tất cả các kết cấu, ma trận lột da và bộ đệm hình học.
  3. GltfPbrPass và GltfDepthPass, hai lớp sử dụng các lớp trên để kết xuất cảnh bằng các kỹ thuật đã đề cập.

Khung công tác Radeon Cauldron chứa cả hai mã phụ thuộc vào đồ họa và đồ họa. Do đó, khung có thể được chia thành ba dự án Visual Studio:

  1. Framework_DX12: Rõ ràng từ cái tên, phần này liên quan đến DirectX12. Nói cách khác, nó chứa tất cả mã Direct3D 12.
  2. Framework_VK: Phần này chứa tất cả mã Vulkan có liên quan.

Ngẫu nhiên, có một thành phần thứ ba cũng phổ biến cho cả hai loại dự án Visual Studio được đề cập ở trên. Phần này được gọi là ‘Framework_Common’. Thành phần chung bao gồm các khía cạnh sau:

Cấu trúc GLTF

  • Mã chuyển đổi và hoạt ảnh
  • Đang tải hình ảnh
  • Xử lý cửa sổ
  • Máy ảnh

Khung công tác Radeon Cauldron hỗ trợ các kỹ thuật xử lý hậu kỳ như nở, làm mờ, lấy mẫu xuống và ánh xạ tông màu. SDK giới thiệu hai thành viên phụ mới. Chúng hữu ích trong việc tạo các mục tiêu hiển thị tạm thời:

bool OnCreateWindowSizeDependentResources (…) // tạo các mục tiêu kết xuất tạm thời cần thiết cho hiệu ứng

void OnDestroyWindowSizeDependentResources (…)

Điều thú vị là AMD Radeon Cauldron 1.0 SDK đã được thử nghiệm nội bộ cho phép các lập trình viên triển khai mọi thứ ở cấp độ thấp hơn. Đáng ngạc nhiên, ngay cả ở những cấp độ này, họ có thể sử dụng một số trình quản lý bộ nhớ để đảm bảo mọi thứ chạy trơn tru. Một số trình quản lý bộ nhớ vẫn hoạt động ngay cả ở cấp thấp hơn như sau:

  • StaticBufferPool: Thành phần này chứa dữ liệu tĩnh. Hơn nữa, nó cũng có tính năng phân bổ phụ.
  • DynamicBufferRing: Đây là một hệ thống đệm hình tròn. Các lập trình viên có thể dựa vào điều này cho các bộ đệm không đổi.
  • Texture: Cho phép tải các kết cấu và tạo các mục tiêu kết xuất. Điều thú vị là hệ thống Texture cũng cho phép tạo các khung nhìn cho các mục tiêu kết xuất.
  • ShaderCompilerHelper: Đây là một công cụ mạnh mẽ hỗ trợ biên dịch mã nguồn. ShaderCompilerHelper cũng lưu trữ các tệp nhị phân. Không cần phải đề cập đến, điều này làm giảm đáng kể thời gian tải.
  • UploadHeap: Công cụ này cho phép các lập trình viên phân bổ phụ từ vùng bộ nhớ hệ thống để tải lên dữ liệu, về cơ bản bao gồm các kết cấu cũng như bộ đệm vào bộ nhớ video.

Vì đây là một SDK mã nguồn mở, AMD đang kêu gọi những người dùng bên ngoài sớm thử nghiệm điều này và đưa ra phản hồi của họ. Rất có thể AMD cũng sẽ phân tích như vậy và thực hiện một số đề xuất để cải thiện Radeon Cauldron SDK.

Thẻ amd AMD Navi radeon