summaryrefslogtreecommitdiff
path: root/src/solvers/gpu/mod.rs
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2020-01-12 05:18:56 +0100
committerDennis Kobert <dennis@kobert.dev>2020-01-12 05:18:56 +0100
commit29bffc6f6c794fee886904ad3960c4cb770deb11 (patch)
tree5c896350538842863d3834b11ed25c44773d8699 /src/solvers/gpu/mod.rs
parent1650906f010574e8810c8b0b98334e22fac5894d (diff)
Fix Bugs
Diffstat (limited to 'src/solvers/gpu/mod.rs')
-rw-r--r--src/solvers/gpu/mod.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/solvers/gpu/mod.rs b/src/solvers/gpu/mod.rs
index f9ab711..f147f31 100644
--- a/src/solvers/gpu/mod.rs
+++ b/src/solvers/gpu/mod.rs
@@ -11,6 +11,7 @@ pub enum Message {
CheckRequest(CheckRequest),
HostMessage(MaskMessage),
OutputMessage(RowMessage),
+ ResultMessage(ResultMessage),
Terminate,
}
@@ -18,14 +19,22 @@ pub struct ResultMessage {
data: Vec<u64>,
offset: usize,
size: usize,
+ wg_size: usize,
+ id: u64,
}
impl ResultMessage {
- fn new(data: Vec<u64>, offset: usize, size: usize) -> Self {
- Self { data, offset, size }
+ fn new(data: Vec<u64>, offset: usize, size: usize, wg_size: usize, id: u64) -> Self {
+ Self {
+ data,
+ offset,
+ size,
+ wg_size,
+ id,
+ }
}
- fn valid_walls(&self, wg_size: usize) -> &[Vec<u32>] {
- let mut result = vec![Vec::new(); wg_size];
+ fn valid_walls(&self) -> &[Vec<u32>] {
+ let mut result = vec![Vec::new(); self.wg_size];
for (j, r) in self.data.iter().enumerate() {
for b in 0..64 {
if r & (1 << b) != 0 {