STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Public Attributes | Private Attributes | List of all members
Concurrency::details::_DPC_call_handle Struct Reference

#include <amprt.h>

Public Member Functions

 _DPC_call_handle (const accelerator_view &_Accelerator_view)
 
 ~_DPC_call_handle ()
 
bool _Is_buffer_aliased (_In_ void *_Buffer_ptr)
 
bool _Is_buffer_unaccessed (size_t _Buffer_idx)
 
void _Set_buffer_unaccessed (size_t _Buffer_idx)
 
const int_Get_redirect_indices () const
 
void _Check_buffer_aliasing ()
 
void _Update_buffer_rw_property ()
 
void _Setup_aliasing_redirection_indices ()
 
void _Select_accelerator_view ()
 
void _Verify_buffers_against_accelerator_view ()
 

Public Attributes

_Accelerator_view_impl * _M_rv
 
bool _M_is_explicit_target_acclview
 
_Device_resource_info_M_device_resource_info
 
size_t _M_num_resources
 
size_t _M_num_writable_buffers
 
size_t _M_num_samplers
 
_Device_const_buffer_info_M_const_buffer_info
 
size_t _M_num_const_buffers
 
bool _M_RW_aliasing
 
_DPC_shader_blob * _M_shader_blobs [NUM_SHADER_VERSIONS]
 
int _M_is_flat_model
 
unsigned int _M_compute_rank
 
unsigned int_M_grid_extents
 
unsigned int _M_groupCountX
 
unsigned int _M_groupCountY
 
unsigned int _M_groupCountZ
 
unsigned int _M_groupExtentX
 
unsigned int _M_groupExtentY
 
unsigned int _M_groupExtentZ
 

Private Attributes

std::unique_ptr< std::unordered_set< void * > > _M_aliased_buffer_set
 
std::unique_ptr< std::vector< bool > > _M_is_device_buffer_unaccessed
 
std::unique_ptr< std::vector< int > > _M_Redirect_indices
 

Constructor & Destructor Documentation

Concurrency::details::_DPC_call_handle::_DPC_call_handle ( const accelerator_view _Accelerator_view)
inline
3707  {
3708  if (!_Accelerator_view.is_auto_selection) {
3709  _M_rv = _Get_accelerator_view_impl_ptr(_Accelerator_view);
3710  }
3711  else {
3712  _M_rv = NULL;
3713  }
3714 
3716  if (_M_rv != NULL) {
3718  }
3719 
3721  _M_num_resources = 0;
3723  _M_num_samplers = 0;
3724 
3727 
3728  _M_RW_aliasing = false;
3729 
3730  for (size_t _I = 0; _I < NUM_SHADER_VERSIONS; _I++)
3731  {
3732  _M_shader_blobs[_I] = NULL;
3733  }
3734 
3735  _M_is_flat_model = 0;
3736  _M_compute_rank = 0;
3738 
3739  _M_groupCountX = 0;
3740  _M_groupCountY = 0;
3741  _M_groupCountZ = 0;
3742 
3743  _M_groupExtentX = 0;
3744  _M_groupExtentY = 0;
3745  _M_groupExtentZ = 0;
3746  }
size_t _M_num_writable_buffers
Definition: amprt.h:3679
unsigned int _M_groupExtentY
Definition: amprt.h:3703
bool _M_RW_aliasing
Definition: amprt.h:3686
unsigned int _M_groupExtentZ
Definition: amprt.h:3704
_Ret_ _Accelerator_view_impl * _Get_accelerator_view_impl_ptr(const accelerator_view &_Accl_view)
Definition: amprt.h:1632
#define NULL
Definition: crtdbg.h:30
size_t _M_num_resources
Definition: amprt.h:3678
unsigned int _M_groupCountZ
Definition: amprt.h:3699
unsigned int _M_compute_rank
Definition: amprt.h:3693
unsigned int _M_groupCountX
Definition: amprt.h:3697
unsigned int _M_groupExtentX
Definition: amprt.h:3702
_Device_resource_info * _M_device_resource_info
Definition: amprt.h:3677
_DPC_shader_blob * _M_shader_blobs[NUM_SHADER_VERSIONS]
Definition: amprt.h:3689
_Device_const_buffer_info * _M_const_buffer_info
Definition: amprt.h:3683
int _M_is_flat_model
Definition: amprt.h:3692
unsigned int _M_groupCountY
Definition: amprt.h:3698
size_t _M_num_samplers
Definition: amprt.h:3680
_Accelerator_view_impl * _M_rv
Definition: amprt.h:3673
bool _M_is_explicit_target_acclview
Definition: amprt.h:3674
size_t _M_num_const_buffers
Definition: amprt.h:3684
unsigned int * _M_grid_extents
Definition: amprt.h:3694
Concurrency::details::_DPC_call_handle::~_DPC_call_handle ( )
inline
3749  {
3750  if (_M_grid_extents) {
3751  delete [] _M_grid_extents;
3752  }
3753  }
unsigned int * _M_grid_extents
Definition: amprt.h:3694

Member Function Documentation

void Concurrency::details::_DPC_call_handle::_Check_buffer_aliasing ( )
const int* Concurrency::details::_DPC_call_handle::_Get_redirect_indices ( ) const
inline
3775  {
3776  if (!_M_RW_aliasing) {
3777  return nullptr;
3778  }
3779 
3780  _ASSERTE(_M_Redirect_indices != nullptr);
3781 
3782  return _M_Redirect_indices->data();
3783  }
bool _M_RW_aliasing
Definition: amprt.h:3686
#define _ASSERTE(expr)
Definition: crtdbg.h:216
std::unique_ptr< std::vector< int > > _M_Redirect_indices
Definition: amprt.h:3795
bool Concurrency::details::_DPC_call_handle::_Is_buffer_aliased ( _In_ void _Buffer_ptr)
inline
3756  {
3757  return ((_M_aliased_buffer_set != nullptr) && (_M_aliased_buffer_set->find(_Buffer_ptr) != _M_aliased_buffer_set->end()));
3758  }
details::_Reference_counted_obj_ptr< details::_Buffer > _Buffer_ptr
Definition: amprt.h:302
std::unique_ptr< std::unordered_set< void * > > _M_aliased_buffer_set
Definition: amprt.h:3792
bool Concurrency::details::_DPC_call_handle::_Is_buffer_unaccessed ( size_t  _Buffer_idx)
inline
3761  {
3762  return ((_M_is_device_buffer_unaccessed != nullptr) && _M_is_device_buffer_unaccessed->operator[](_Buffer_idx));
3763  }
std::unique_ptr< std::vector< bool > > _M_is_device_buffer_unaccessed
Definition: amprt.h:3793
void Concurrency::details::_DPC_call_handle::_Select_accelerator_view ( )
void Concurrency::details::_DPC_call_handle::_Set_buffer_unaccessed ( size_t  _Buffer_idx)
inline
3766  {
3767  if (_M_is_device_buffer_unaccessed == nullptr) {
3768  _M_is_device_buffer_unaccessed = std::unique_ptr<std::vector<bool>>(new std::vector<bool>(_M_num_resources, false));
3769  }
3770 
3771  _M_is_device_buffer_unaccessed->operator[](_Buffer_idx) = true;
3772  }
std::unique_ptr< std::vector< bool > > _M_is_device_buffer_unaccessed
Definition: amprt.h:3793
size_t _M_num_resources
Definition: amprt.h:3678
void Concurrency::details::_DPC_call_handle::_Setup_aliasing_redirection_indices ( )
void Concurrency::details::_DPC_call_handle::_Update_buffer_rw_property ( )
void Concurrency::details::_DPC_call_handle::_Verify_buffers_against_accelerator_view ( )

Member Data Documentation

std::unique_ptr<std::unordered_set<void*> > Concurrency::details::_DPC_call_handle::_M_aliased_buffer_set
private
unsigned int Concurrency::details::_DPC_call_handle::_M_compute_rank
_Device_const_buffer_info* Concurrency::details::_DPC_call_handle::_M_const_buffer_info
_Device_resource_info* Concurrency::details::_DPC_call_handle::_M_device_resource_info
unsigned int* Concurrency::details::_DPC_call_handle::_M_grid_extents
unsigned int Concurrency::details::_DPC_call_handle::_M_groupCountX
unsigned int Concurrency::details::_DPC_call_handle::_M_groupCountY
unsigned int Concurrency::details::_DPC_call_handle::_M_groupCountZ
unsigned int Concurrency::details::_DPC_call_handle::_M_groupExtentX
unsigned int Concurrency::details::_DPC_call_handle::_M_groupExtentY
unsigned int Concurrency::details::_DPC_call_handle::_M_groupExtentZ
std::unique_ptr<std::vector<bool> > Concurrency::details::_DPC_call_handle::_M_is_device_buffer_unaccessed
private
bool Concurrency::details::_DPC_call_handle::_M_is_explicit_target_acclview
int Concurrency::details::_DPC_call_handle::_M_is_flat_model
size_t Concurrency::details::_DPC_call_handle::_M_num_const_buffers
size_t Concurrency::details::_DPC_call_handle::_M_num_resources
size_t Concurrency::details::_DPC_call_handle::_M_num_samplers
size_t Concurrency::details::_DPC_call_handle::_M_num_writable_buffers
std::unique_ptr<std::vector<int> > Concurrency::details::_DPC_call_handle::_M_Redirect_indices
private
_Accelerator_view_impl* Concurrency::details::_DPC_call_handle::_M_rv
bool Concurrency::details::_DPC_call_handle::_M_RW_aliasing
_DPC_shader_blob* Concurrency::details::_DPC_call_handle::_M_shader_blobs[NUM_SHADER_VERSIONS]

The documentation for this struct was generated from the following file: